Einzelnen Beitrag anzeigen

Benutzerbild von ManuMF
ManuMF

Registriert seit: 11. Jul 2005
1.016 Beiträge
 
Delphi 6 Personal
 
#1

TStringList: Bestimmte Zeilen rausfiltern

  Alt 25. Sep 2005, 20:39
Hallo,

ich habe folgendes Problem:

Ich lade eine Textdatei in eine StringList ein.
Die hat etwa den Text
Code:
// Kommentar
Wichtiger Text
// Unwichtiger Text
Kein Kommentar
Und alles, was mit \\ markiert ist, soll weg.

Wenn ich das in eine Schleife packe, habe ich aber das Problem, dass sich beim Löschen einer Zeile die Gesamtzahl der Zeilen verkleinert. Wenn die Schleife dann ein paar Zeile rausgefiltert hat, übersteigt die Schleifenvariable logischerweise die Gesamtzeilenzahl, und ich erhalte die schöne Fehlermeldung "Listenindex überschreitet Maximum".

Gibt es da vielleicht eine Möglichkeit, die Löschungen unabhängig von der Anzahl zu machen?

Hier mein bisheriger Code:
Delphi-Quellcode:
  SL := TStringList.create;
  try
    SL.LoadFromFile(GetCurrentDir + '\info.txt');
    for Zeile := 0 to SL.Count do
    begin
      if (DelStr(Sl.Strings[Zeile], 3, (Length(SL.Strings[Zeile]) - 2)) = '\\') then
      Sl.Delete(Zeile);
    end;
    ShowMessage(SL.Text);
  finally
    SL.Free;
  end;
Bei DelStr handelt es sich übrigens um eine Funktion, die das Gleiche wie Delete macht, nur eben als Funktion.

Danke,
ManuMF
Gruß,
ManuMF

Endlich hab ich was Positives an Vista entdeckt: Das mitgelieferte Mahjongg
  Mit Zitat antworten Zitat