![]() |
ReadLn - Welche Zeile?
Mh, ich will ganz simpel eine bestimmte Zeiler einer Textdatei auslesen.
Allerdings habe ich das Problem, dass ich es, trotz Suchfunktion, nicht schaffe, herauszubekommen, woher Delphi die Zeile weiß, die ich auslesen will. Mit Reset setze ich ja den Curson bzw. den Zeiger an den Anfang, aber wie setze ich ihn auf den Anfang der z.B. 2ten Zeile? |
Re: ReadLn - Welche Zeile?
s. Delphi Hilfe :)
Zitat:
|
Re: ReadLn - Welche Zeile?
Joa, da kann ich 1 auslesen, dann 2, dann 3 etc.
Nur was, wenn ich NUR die zweite Zeile auslesen will? oO |
Re: ReadLn - Welche Zeile?
Du kannst nicht einfach so einen Dateicursor versetzten, du musst schon Read oder ReadLn aufrufen. Diese Funktionen setzen dann den Dateicursor woanders hin.
|
Re: ReadLn - Welche Zeile?
Toll.
Und wie komme ich _nur_ an die zweite Zeile ran? Von mir aus auch mit anderen Methoden als ReadLn... wenn das anscheind nicht geht \: Das muss doch möglich sein. edit: btw. wenn die Funktion den Cursor setzen kann, dann kann ich das ja auch irgendwie ^^ |
Re: ReadLn - Welche Zeile?
Zweite Zeile?
Delphi-Quellcode:
ReadLn(InFile);
ReadLn(Infile, Buffer); |
Re: ReadLn - Welche Zeile?
Zweite Zeile war nur ein Beispiel. Was wenn ich an die 5326467423543 Zeile ran will.
Ist dann:
Delphi-Quellcode:
auch noch möglich bzw resourcen sparend?
for i := 0 to 5326467423542 do begin
ReadLn(F); end; ReadLn(F,BUffer); |
Re: ReadLn - Welche Zeile?
Da ReadLn in diesem Fall nichts einliest, sondern nur den Dateicursor verschiebt, geht das und verbraucht (ausser Prozessorzeit) kaum Resourcen.Die einzig andere Möglichkeit, dies Akzeptabel zu lösen wäre mit Streams.
|
Re: ReadLn - Welche Zeile?
meiner Meinung nach geht das mit Seek()...
guck mal in die Delphi-Hilfe.Da steht alles drinne Delphi-Hilfe-Beispiel:
Delphi-Quellcode:
MFg Alex
procedure TForm1.Button1Click(Sender: TObject);
var f: file of Byte; size: Longint; S: string; y: Integer; begin if OpenDialog1.Execute then begin AssignFile(f, OpenDialog1.FileName); Reset(f); try size := FileSize(f); S := 'File size in bytes: ' + IntToStr(size); y := 10; Canvas.TextOut(5, y, S); y := y + Canvas.TextHeight(S) + 5; S := 'Seeking halfway into file...'; Canvas.TextOut(5, y, S); y := y + Canvas.TextHeight(S) + 5; Seek(f, size div 2); S := 'Position is now ' + IntToStr(FilePos(f)); Canvas.TextOut(5, y, S); finally CloseFile(f); end; end; end; |
Re: ReadLn - Welche Zeile?
Ich werfe mal die StringListe hier in die Runde. ;)
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:02 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz