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.
Ein Therapeut entspricht 1024 Gigapeut.