Thema: Delphi ReadFile

Einzelnen Beitrag anzeigen

Benutzerbild von sx2008
sx2008

Registriert seit: 15. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#4

Re: ReadFile

  Alt 28. Feb 2010, 17:57
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;
  Mit Zitat antworten Zitat