Home » Tipps & Tricks » Dateien/Verzeichnisse » Dateioperationen » Datei in einen String laden

Datei in einen String laden

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 > 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.