Wenn tDaten als dyn. Array deklariert ist, wird es in deinem Record nur als Zeiger repräsentiert, als statisches Array ist es aber komplett im Record enthalten. Wenn also sizeof(tinfile) Bytes aus der Datei gelesen werden, werden bei der dynamischen Variante zusätzlich zum Header nur 4 Bytes an Daten gelesen. Du musst den Header und die Daten getrennt lesen, etwa so:
Delphi-Quellcode:
Stream.ReadBuffer(in_file, SizeOf(in_file) - sizeof(infile.tDaten))); //vermute, sizeof = Größe des Pointers
Stream.ReadBuffer(in_file.tdaten, length(in_file.tdaten));
Ein Experte ist ein Mann, der hinterher genau sagen kann, warum seine Prognose nicht gestimmt hat. (Winston Churchill)