incrementation de boucle for
bonjour à tous,
certain vont peut-etre m'en vouloir mais je n'arrive pas à modifier l'incrementation dans une boucle.
je cherche à faire un controle sur une TStringlist. Les valeur des ligne impairs ne doivent pas contenir de doublons et des ligne
Code:
1 2 3 4 5 6 7 8 9 10 11 12
|
for i := 0 to TStrinlist.Count-2 do
begin
for j :=i+2 to TStrinlist.Count do
begin
if TStrinlist.Strings[i] = TStrinlist.Strings[j] then
raise Exception.Create('Le fichier "TStrinlist" contient plusieur fois le même code')
else
j:= j+1;
end;
i := i+1;
end; |
je cherche à incrementer des 2 i et j mais j'ai les messages d'erreur suivant:
[Erreur] U_Principale_Import.pas(94): Affectation à variable de boucle FOR 'j'
[Erreur] U_Principale_Import.pas(96): Affectation à variable de boucle FOR 'i'
je pense comprendre que je ne peut utiliser i et j car ils sont verouillés
quelqu'un aurait une solution?
PS : j'ai cherché dans la faq
[Balises CODE rajoutées par Pedro. Merci d'y penser à l'avenir]
Une boucle style "for i := 0 to un_nombre step 2" ?
Ben j'ai jamais trouvé.
J'ai ça qui fonctionne (c'est pas beau, hein !) :
Code:
1 2 3 4 5 6 7 8 9 10 11
| procedure TForm1.Button1Click(Sender: TObject);
var i: integer; r: real;
begin
memo1.Clear;
r := 0;
for i := 0 to 5 do begin
r := i;
if IntToStr(i div 2) <> FloatToStr(r / 2) then continue;
memo1.Lines.Add(inttostr(i));
end;
end; |
Mes 2 cts,
--
jp