Delphi-Quellcode:
Type
TMyRecord = Record
A,B,C,D : TSomeType;
E : TDynArray;
Procedure SaveToStream (aStream : TStream);
End;
Procedure TMyRecord.SaveToStream(aStream : TStream);
Var
numberOFixedBytes,
elementCount,
firstElement : Integer;
Begin
// statischer/fester Teil
numberOFixedBytes := PChar(Integer(@E)-Integer(@A));
aStream.Write(A,NumberOfFixedBytes);
// Für jedes dynamische Array folgenden Code ausführen
elementCount := Length(E);
aStream.Write(elementCount);
if elementCount>0 then begin
firstElement := Low(E);
aStream.Write(E[firstElement], elementCount*SizeOf(E[firstElement]));
end
End;
Laden geht genauso (analog). Wenn Du das as Recordmethoden implementierst, sieht das doch hübsch aus.