Einzelnen Beitrag anzeigen

Der_Unwissende

Registriert seit: 13. Dez 2003
Ort: Berlin
1.756 Beiträge
 
#4

Re: Textdatei Zeile für Zeile auslesen, bis zum Ende

  Alt 28. Mär 2007, 15:51
Zitat von BillieJoe90:
Hallo,
ich würde gerne eine Datei auslesen, und zwar Zeile für Zeile. Es handelt sich um eine m3u-Datei. Theroretisch kann ich mir vorstellen, wie es funktioniert:
While-Schleife, in der ReadLn aufgerufen wird, bis der Dateizeiger am Ende ist.
Quasi:
Delphi-Quellcode:
while DateiZeiger nicht am Ende do begin
  ReadLn(...);
  ReadLn(...);
end;
Schau mal in nach Delphi-Referenz durchsuchenEOF, das ist der Dateiende-Zeiger. Allerdings ist es eher unüblich noch auf diese Funktionen zurück zu greifen. In der Regel öffnet man Dateien eher als Stream (damit kannst Du weiter von Inhalt und Speicherort abstrahieren).
Willst Du mit einer Textdatei arbeiten bietet sich zudem die TStringList an. Diese liest für Dich eine Datei in eine Liste ein. Die Anzahl der Zeilen kannst Du mit der Eigenschaft Count ermitteln, auf einzelne Zeilen kannst Du mit der Eigenschaft Items[i] zugreifen (kannst auch [i] direkt an die Instanz anhängen, ist die Standardeigenschaft).

Delphi-Quellcode:
var s: TStringList;
    blubb: String;
    i: Integer;
begin
  s := TStringList.Create;
  s.LoadFromFile(DATEI_NAME);

  for i := 0 to s.count - 1 do
  begin
    blubb := s[i];
    
    // mach irgendwas mit blubb
  end; // for i := 0 to s.Count - 1
end;
Du kannst natürlich auch die Zeilen verändern und/oder neue hinzufügen. Um die Datei wieder zu Speichern steht Dir dann die Methode saveToFile zur Verfügung.

Gruß Der Unwissende

[edit]
Ich könnte schwören, dass es einst einen roten Kasten gab, der war, hm, rot!
[/edit]
  Mit Zitat antworten Zitat