1 pièce(s) jointe(s)
Pourquoi je pète les plombs...
Code:
1 2 3 4 5 6 7 8 9
| var
aByte: byte;
begin
//Stream.Seek(-1, soFromEnd); // test sur file terminator
// une manière ou l'autre de se déplacer à la fin - 1 byte du fichier, résultat identique
Stream.Seek(Stream.Size-1, soFromBeginning); // test sur file terminator
if Stream.Read(aByte, 1) = 59 then Exit;
try
Stream.Position:=0; |
Le Stream est passé à cette procedure TmyFPReaderGif.InternalRead(Stream: TStream; Img: TFPCustomImage); par FPimage.
Et ce qui ne devait pas arriver arriva : j'exécute, je choisis un fichier valide et quand je mets la souris sur aByte (c'est facile, j'ai mis un point d'arrêt dessous, et j'y suis arrêté :aie:), l'infobulle m'affiche 59, qui est bien la valeur attendue.
Mais alors, le test, :koi:
Pièce jointe 385410
:marteau: :marteau: :marteau:
Au départ le test c'est ... <> 59 then Exit; et je ne comprenais pas pourquoi quelque chose clochait.
EDIT
Mais bon, tout va bien, juste qu'aujourd'hui le code a décidé de fonctionner à l'envers...
Au secours.
Faut faire les choses en deux temps (moi qui aime la concision, ça ne me plaît qu'à moitié, mais sinon, bonjour le piège) :
Code:
1 2 3
| Stream.Read(aByte, 1);
if aByte <> 59 then Exit; // on sort si le terminator n'est pas $3B
try |
et là c'est enfin bon.
/EDIT