Ca fait deja un petit moment que je programme en Delphi, mais je me suis rendu compte que je ne maitrisé pas encore tous les rouages du Pascal.
Je desire realisé une boucle qui parcours un tableau qui a une taille qui peut chager pendant chaque tour de boucle. Mais je ne sait pas comment faire puisque for et while évalue le valeur au premier passage, mais pas après ! Exemple :
Et voila le résultat :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 j:=3; for i:=0 to j do begin if i=1 then j:=5; Memo1.Lines.Add('i : '+intToStr(i)+' j + '+intToStr(j)); //affichage end;
On voit bien qu'il y a eut 4 tours de boucle et pas 6 !i : 0 j + 3
i : 1 j + 5
i : 2 j + 5
i : 3 j + 5
Pour info, voici mon code Delphi:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 setLength(rubFille,1); rubFille[0]:=copieRub.No; for j:=0 to length(rubFille) do begin tmpSQL.Close; tmpSQL.SQL.Text:='select * from rubrique where rubmere_no = '+intToStr(rubfille[j]); tmpSQL.Open; while not tmpSQL.Eof do begin setLength(rubFille,length(rubFille)+1); rubFille[length(rubFille)-1]:=tmpSQL['Rub_no']; //Ajouter dans la base + droit //Memo1.Lines.Add('ajouter : '+tmpSQL['NOM']); tmpSQL.Next; end; //while eof end; //for j to length(rubFille)
Avec :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 var tmpSQL : TIBQuery; noRub : string; i,j{,niveauMax} : integer; rubFille : array of integer;
Partager