Wenn du einen Memorystream nimmst, schreibst du am Anfang die Länge des Strings und dann die einzelnen Chars nacheinander.
Delphi-Quellcode:
var
String:String //Dein String
MS:TMemoryStream;
i:Integer;
C:Char;
begin
MS := TMemoryStream.Create;
i:= length(String);
MS.WriteBuffer(i,sizeof(i));
For i := 1 to length(String) do begin
C := String[i];
MS.WriteBuffer(c,sizeof(c));
end;
MS.Free;
end;
so mach ich das immer