AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi TStringList: Bestimmte Zeilen rausfiltern
Thema durchsuchen
Ansicht
Themen-Optionen

TStringList: Bestimmte Zeilen rausfiltern

Ein Thema von ManuMF · begonnen am 25. Sep 2005 · letzter Beitrag vom 25. Sep 2005
Antwort Antwort
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, 19: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
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#2

Re: TStringList: Bestimmte Zeilen rausfiltern

  Alt 25. Sep 2005, 19:41
Entweder du packst alles in eine while-Schleife oder du machst:

Delphi-Quellcode:
for I := SL.Count downto 0 do
...
  Mit Zitat antworten Zitat
Benutzerbild von kiar
kiar

Registriert seit: 2. Aug 2003
Ort: Aschersleben
1.362 Beiträge
 
Delphi 5 Professional
 
#3

Re: TStringList: Bestimmte Zeilen rausfiltern

  Alt 25. Sep 2005, 19:42
hallo,

suche mal nach StringReplace

raik

Edit// es ist schon spät vergiss , was ich oben geschrieben habe
verhältnisse die einem nicht passen,
muss man verändern oder verlassen
  Mit Zitat antworten Zitat
Benutzerbild von ManuMF
ManuMF

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

Re: TStringList: Bestimmte Zeilen rausfiltern

  Alt 25. Sep 2005, 19:54
Danke, das mit downto hat funktioniert.
Manchmal habe ich halt einen Wald vorm Kopf...

Gruß,
ManuMF
Gruß,
ManuMF

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


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:55 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz