Schau dir mal TReader und TWriter an ... das nimmt auch Delphi, um die
DFM zu speichern (wobei hier das Binär raus kommt, aber in Text konvertriert werden kann)
Und es gibt auch Mapper für
XML oder JSON, um Objekte zu (de)serialisieren.
ReadOrWrite(Pointer(S), Length(S)*StringElementSize(S));
funktioniert mit allen Delphi-Strings (außer ShortString)
aber generell ist es besser statt Pointer das passende PChar/PAnsiChar/PWideChar zu verwenden.
Delphi-Quellcode:
ReadOrWrite(PChar(S), Length(S)*SizeOf(Char)); // String
ReadOrWrite(PAnsiChar(A), Length(A){*SizeOf(AnsiChar)}); // AnsiString
ReadOrWrite(PWideChar(U), Length(U)*SizeOf(WideChar)); // UnicodeString und WideString
und z.B. bei typlosen VAR-Parametern noch ein ^ hinten dran, an den Cast.