Bonjour a tous.
Le poste de travail est : OS XP et delphi 7.
Voici un problème que je n'arrive pas à cerner. Notamment que cela a fonctionner durant des années et que ce bug doit surgir d'une recompilation.
Nous avons 1 record qui comprend entre autres choses 2 tableaux (Tmin/Tmax) dimensionnés de [1..40] of real : ces tableaux contiennent les valeurs de butée min/max pour détecter des erreurs.
Un 3éme tableau (Tvalue) dimensionné de [1..20] of real : ce tableaux comprend les valeurs valeurs saisies.
le but étant de s'assurer que les valeurs saisies se trouvent bien dans l'espace autorisé. Rien de bien spécial et comme je le disais cela n'a jamais posé de problème jusqu’à une compilation ou ce bug a surement été crée.
mon problème est sur le traitement du tableau par delphi.
1° Quand je visualise son contenu avec le débogueur les valeurs à l'intérieur des tableaux sont normales.
2° Quand je visualise les contenus de tableau à l'instant de la comparaison les valeurs sont correctes, mais pas le résultat :
Par exemple : Tmax[15]=10 et Tvalue[15]=10 si je teste ces deux valeurs (if Tvalue > Tmax then exit) ben j’exécute le "Exit" alors que les deux valeurs sont égales.
3° en anticipant j'ai essayé de stocker le contenu de chaque index des tableaux dans des variables locales et là surprise sur un des tableau (le Tmax) il me croise le contenu des valeurs (oui c'est pas clair) d’où le petit schéma dessous.
pour un tableau de 5 éléments numérote de A à E
Index tableau..............contenu tableau...............affectation variable locale
1.......................................A .............................=> E
2.......................................B..............................=> D
3.......................................C..............................=> C
4.......................................D..............................=> B
5.......................................E..............................=> A
Je savais que parfois le compilation pour des optimisations lit les tableau dans un sens plutôt que dans l'autre, mais là !!!
Les deux tableaux comparait ne sont pas lus dans le même sens.
et pour finir dans cette procédure de fait plusieurs tests comparatifs ( Tmax, Tmin, real.. ) et seul le test du Tmax est erroné.
Quelqu'un a t il une idée sur ce genre de problème ?? directive de compilation... ou je ne sais quoi ... !!
Partager