Zitat:
Aber nur zur Sicherheit:
Der Code wird wirklich ausgeführt und du hast auch keinen
Exception Handler um den Aufruf, der die
Exception ggfls. abfangen könnte?
Ich habe mal MadExcept angeworfen und nein so wie du am bild sehen kann gibt der Compiler True zurück ohne wenn und aber
Das ist interessant
Was gibt
StrToInt('ANIM')
denn für einen Wert zurück? Das ist jetzt mal spannend herauszufinden.
Er durchläuft das Array bis 8 und schaltet dann auf true.
Ausgeben tut er sonst nichts.
Was passiert denn, wenn du mal ganz am Anfang der Funktion testweise ein
ShowMessage(IntToStr(StrToInt('ANIM')))
machst? Würde mich mal interessieren.
Aber wie gesagt es kann nicht richtig sein auch wenn das Ergebnis true ist.
So komme ich nicht an den Header.
Wenn der Header tatsächlich immer am Dateiende ist, kannst du ihn ganz einfach so auslesen und dir sowohl das Byte-Array, als auch die komische Schleife sparen:
Delphi-Quellcode:
FileStream := TFilestream.Create(wsFile ,fmopenread or fmShareDenyNone);
try
FileStream.Seek(-SizeOf(TAniHeader), soEnd);
FileStream.Read(anih, SizeOf(anih));
finally
FileStream.Free;
end;