Ja, eine typisierte Datei hat eine feste Recordbreite, was ja mit einem dynamischen array nicht gegeben ist.
Würde den zweiten Record erweitern:
Delphi-Quellcode:
TDatei = Record
Name : String[255];
Copyright : String[255];
Autor : String[255];
InhaltCount : Integer;
Inhalt : Array of TInhalt;
end;
Schreiben ist ja sowieso kein Problem und mit dem Counter sollte dann auch lesen mit einem TFileStream problemlos möglich sein.
Also vorm Schreiben InhaltCount mit der tatsächlichen Zahl füllen und die Record-Felder einzeln speichern (TInhalt in einer Schleife length(x))
Beim Lesen erst den "Header" bis bis InhaltCount einlesen und ensprechend die Anzahl der TInhalt Arrays.