Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi TStringList: Bestimmte Zeilen rausfiltern (https://www.delphipraxis.net/53934-tstringlist-bestimmte-zeilen-rausfiltern.html)

ManuMF 25. Sep 2005 19:39


TStringList: Bestimmte Zeilen rausfiltern
 
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

Die Muhkuh 25. Sep 2005 19:41

Re: TStringList: Bestimmte Zeilen rausfiltern
 
Entweder du packst alles in eine while-Schleife oder du machst:

Delphi-Quellcode:
for I := SL.Count downto 0 do
...

kiar 25. Sep 2005 19:42

Re: TStringList: Bestimmte Zeilen rausfiltern
 
hallo,

suche mal nach StringReplace

raik

Edit// es ist schon spät vergiss , was ich oben geschrieben habe :wall:

ManuMF 25. Sep 2005 19:54

Re: TStringList: Bestimmte Zeilen rausfiltern
 
Danke, das mit downto hat funktioniert.
Manchmal habe ich halt einen Wald vorm Kopf... :wall:

Gruß,
ManuMF


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:35 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