Einzelnen Beitrag anzeigen

Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#14

Re: Textdatei mit TFileStream

  Alt 24. Dez 2005, 17:40
mit folgendem Source kannst du eine bestimmte Zeile aus einem Stream lesen (ab Stream Position)
Delphi-Quellcode:
function GetLine(AStream: TStream; ALineNumber: Integer): String;
var LBuffer2, LBuffer: String;
    LCurrLine, LBytes, LBreakPos: Integer;
begin
  result := '';
  SetLength(LBuffer2, 50);
  LCurrLine := 0;
  while (LCurrLine <= ALineNumber) and (AStream.Position < AStream.Size) do
  begin
    LBytes := AStream.Read(LBuffer2[1], 50);
    LBuffer := copy(LBuffer2, 1, LBytes);
    repeat
      LBreakPos := Pos(#13#10, LBuffer);
      if LCurrLine = ALineNumber then
      begin
        if LBreakPos > 0 then
          result := result + copy(LBuffer, 1, LBreakPos - 1)
        else
          result := result + LBuffer;
      end;
      if LBreakPos > 0 then
      begin
        LBuffer := copy(LBuffer, LBreakPos + 2, 50);
        inc(LCurrLine);
      end;
    until (LBreakPos < 1) or (ALineNumber < LCurrLine);
  end;
end;
geht bestimmt noch eleganter aber als Anregung sollte es reichen.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat