Ich hab mir das hier in meine Toolsammlung geschmissen.
Delphi-Quellcode:
Procedure WriteString (aStream : TStream; Const aString : String);
Var
iLength : Integer;
Begin
iLength := Length(aString);
aStream.WriteBuffer(iLength, SizeOf(iLength));
aStream.Write(Pchar(aString )^, iLength);
End;
Function ReadString (aStream : TSream);
Var
iLength : Integer;
Begin
aStream.ReadBuffer(iLength, SizeOf(iLength));
SetString(Result, PChar(nil), iLength);
aStream.ReadBuffer(Pointer(Result)^, iLength);
End;
Heute würde man das mit einem Class Helper erledigen, der die TStream-Klasse erweitert.