Vielleicht hilft dir das bei TFileStream:
Delphi-Quellcode:
// schreibt 4 Bytes Stringlänge und danach S
procedure WriteStreamStr(Stream: TStream; const S: String);
var len: Cardinal;
begin
len := Length(S);
Stream.Write(len, SizeOf(len));
if len > 0 then Stream.Write(S[1], len);
end;
// liest was WriteStreamStr geschrieben hat
procedure ReadStreamStr(Stream: TStream; var S: String);
var len: Cardinal;
begin
Stream.Read(len, SizeOf(len));
SetLength(S, len);
if len > 0 then Stream.Read(S[1], len);
end;
// liest was WriteStreamStr geschrieben hat
function ReadStreamStr(Stream: TStream): String;
begin
ReadStreamStr(Stream, Result);
end;
Damit kannst du Strings mit der theoretischen Länge von 4 GB schreiben und einlesen.