Valeur indice en sortie de boucle 'for i := 0 to' différente selon langage (Delphi ou FreePascal sous Lazarus)
Bonjour à tous.
Je pense quitter Windows en avril 2014 (fin du support de XP) etcomme j'ai beaucoup de programmes écrits en Delphi 6 je viens de commencer une approche de Lazarus.
Sympa, on ne perd pas tous ses repères.
Mais ......
Le résultat d'un petit test me fait craindre pour la compatibilité entre les versions Delphi6 et Lazarus (tests effectués sous Windows XP).
J'ai extrait de mon source un petit test :
Code:
1 2 3 4 5 6 7 8 9 10
| procedure TForm1.Button2Click(Sender: TObject);
var
i, j : integer;
begin
j := 0;
for i := 1 to 4 do begin
inc(j); // j n'est là que pour remplir la boucle
end;
showmessage('valeur de i : ' + InttoStr(i));
end; |
Oh surprise, en tout cas pour moi car les résultats du showmessage ne sont pas les mêmes.
Bien entendu la procédure ci-dessus n'a été écrite que pour mettre en évidence le phénomène, dans la réalité, il s'agit de parser un buffer qui contient des chaînes de caractères de taille fixe '(padés' par des 0 binaires) et des valeur sur 1, 2, ou 4 octets.
Qui pourrait m'expliquer pourquoi cette divergence de comportement?
Merci