
Zitat von
Astat:
Delphi-Quellcode:
function ReadFile(const FileName: String): AnsiString;
var
ms: TMemoryStream;
begin
ms := TMemoryStream.Create;
ms.LoadFromFile(FileName);
setLength(Result, ms.size);
move(ms.memory^, Result[1], ms.Size);
ms.Free;
end;
Hier wird aber Speicher in der doppelten Grösse der Datei verwendet.
Man sollte die Funktion schnell entsorgen bevor sie im Internet immer weiter kopiert wird.
Hier der Ersatz:
Delphi-Quellcode:
function FileToString(const AFileName: string): AnsiString;
var
f: TFileStream;
l: Integer;
begin
Result := '';
f := TFileStream.Create(AFileName, fmOpenRead or fmShareDenyWrite);
try
l := f.Size;
if L > 0 then
begin
SetLength(Result, l);
F.ReadBuffer(Result[1], l);
end;
finally
F.Free;
end;
end;