Einzelnen Beitrag anzeigen

marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#7

Re: schnelles Textzeilen auslesen ab Position x

  Alt 7. Aug 2006, 09:41
Hallo.

TextFile ist zwar ein alter Hut, aber wenn es dich nicht stört, dann kannst du die darin enthaltene Puffertechnik verwenden und bequem mit ReadLn und WriteLn auf die Textzeilen zugreifen. Wenn ich beim Anpassen meiner alten TP-Quellen keinen Fehler gemacht habe, dann funktioniert prinzipiell das hier:

Delphi-Quellcode:
{$I Func.TextFilePos.pas}
{$I Func.TextFileSeek.pas}

procedure ReadLines(const fn: TFileName; startPos, numLines: Cardinal; s: TStrings);
var
  tf: TextFile;
  line: String;
begin
  AssignFile(tf, fn);
  Reset(tf);
  // SetTextBuf() hier, wenn nötig
  TextFileSeek(tf, startPos);
  while not Eof(tf) and (s.Count < numLines) do
  begin
    ReadLn(tf, line);
    s.Add(line);
  end;
  CloseFile(tf);
end;

procedure TDemoForm.ButtonClick(Sender: TObject);
begin
  with OpenDialog do
    if Execute then
      ReadLines(FileName, 1, 1, Memo.Lines);
end;
Grüße vom marabu
Angehängte Dateien
Dateityp: zip textfileutils_491.zip (795 Bytes, 27x aufgerufen)
  Mit Zitat antworten Zitat