Hallo,
ich kann zwar keinen Sinn darin erkennen den Inhalt einer beliebigen Datei (binär?, riesig?) als String im Hauptspeicher zu lagern, aber wenn überhaupt, dann würde ich einen MemoryStream als Zwischenlager benutzen. Die Größe der ursprünglichen Datei darf natürlich nicht geschrieben werden, da so der Dateiinhalt verändert wird:
Delphi-Quellcode:
procedure LoadStream(s: TStream; fn: TFileName);
var
fs: TFileStream;
begin
fs := TFileStream.Create(fn, fmOpenRead or fmShareDenyWrite);
try
s.CopyFrom(fs, fs.Size);
s.Position := 0;
finally
fs.Free;
end;
end;
procedure SaveStream(s: TStream; fn: TFileName);
begin
with TFileStream.Create(fn, fmCreate) do
try
s.Position := 0;
CopyFrom(s, s.Size);
finally
Free;
end;
end;
Getippt und nicht getestet.
Freundliche Grüße vom marabu