![]() |
TStringList: Bestimmte Zeilen rausfiltern
Hallo,
ich habe folgendes Problem: Ich lade eine Textdatei in eine StringList ein. Die hat etwa den Text
Code:
Und alles, was mit \\ markiert ist, soll weg.
// Kommentar
Wichtiger Text // Unwichtiger Text Kein Kommentar 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:
Bei DelStr handelt es sich übrigens um eine Funktion, die das Gleiche wie Delete macht, nur eben als Funktion.
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; Danke, ManuMF |
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
... |
Re: TStringList: Bestimmte Zeilen rausfiltern
hallo,
suche mal nach StringReplace raik Edit// es ist schon spät vergiss , was ich oben geschrieben habe :wall: |
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