DruckenMister WongFacebook

Datei in einen String laden

System Win9x, WinNT, Win2000, WinXP, Vista, Win7
Ab Delphi-Version Delphi 1
Letzte Änderung 28.09.2010

Folgende Funktion liest eine Textdatei und gibt ihren Inhalt als Result zurück. Als Parameter muss der komplette Dateiname (inkl. Pfad!) übergeben werden. Optional ist es möglich über den zweiten und dritten Parameter eine Start- und/oder Endposition anzugeben.

function FileToString(const AFilename: string; StartPos: Integer=0; EndPos: Integer=0): string;
var
  FileStream : TFileStream;
  wlCount: Integer;
begin
  if FileExists(AFilename) then
  begin
    if StartPos < 0 then
      StartPos := 0;

    FileStream := TFileStream.Create(AFilename, fmOpenRead or fmShareDenyWrite);
    try
      if (EndPos <= StartPos) or (EndPos > FileStream.Size) then
        EndPos := FileStream.Size;
      wlCount := EndPos - StartPos;
      if FileStream.Size > StartPos then
      begin
        SetLength(Result, wlCount);
        FileStream.Seek(StartPos, soFromBeginning);
        FileStream.Read(Result[1], wlCount);
      end;
    finally
      FileStream.Free;
    end;
  end
  else
    Result := '';
end;

Es sollten keine Binärdateien mit dieser Funktion eingelesen werden, da die Ergebnisse unvorhersehbar sein können.