Zitat:
Kann mir jemand sagen, warum dies so nicht funktioniert?
Delphi-Quellcode: markieren
SetLength(LoopBuffer, Trunc(Header.DataBytes));
?
"LoopBuffer" ist ein offenes Array vom Typ SmallInt, während "Header.DataBytes" vom Typ LongInt ist und mir Werte wie z.b. "248316" liefert.
Aber wieso ist das so nicht machbar?
Gibt´s Array-Grenzen im Bezug auf Größe? (Obwohl ich mir das nicht vorstellen kann)
248316*SizeOf(SmallInt) = 485 KB sollte also kein Problem darstellen
Die Grenzen für dynamische Arrays liegen bei
High(Integer) div SizeOf(FeldGröße)
und natürlich dem zur Verfügung stehenden, zusammenhängenden, virtuellen Speicher.
also bei dir
$7FFFFFFF div 2 = maximal 1.073.741.823
Und ohne weiteren Code deinerseit kann dir keiner helfen ... das mit dem TRUNC wurde schon gesagt und sonst ist hier kein Fehler zu finden.