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 ab bestimmter Stelle abschneiden (https://www.delphipraxis.net/108131-tstringlist-ab-bestimmter-stelle-abschneiden.html)

Overburn 7. Feb 2008 14:06


TStringlist ab bestimmter Stelle abschneiden
 
Moin,

eigentlich ein simples Problem:
Ich lese eine XML-Datei in eine Stingliste. Dann möchte ich alle Zeile ab einem bestimmten Wort löschen. Wie löse ich das am besten?
Delphi-Quellcode:
  i := 0;
  while i < l2.Count do begin
    if l2[i] = '</Groups>' then delete := true;

    if delete = true then l2.Delete(i);
    i := i + 1;
  end;
Ich habe es mit oben genanntem Code probiert, allerdings weise ich danach den Inhalt zur visuellen Kontrolle einem Memo zu und dort ist wieder der gesamte Inhalt, außer dem "</Groups>".

Ich find meinen Denkfehler leider nicht... :(

Gru,
Stefan

Nuclear-Ping 7. Feb 2008 14:09

Re: TStringlist ab bestimmter Stelle abschneiden
 
Jedesmal wenn du eine Zeile in einer Liste löschst, rutscht alles um eins nach oben.

Overburn 7. Feb 2008 14:11

Re: TStringlist ab bestimmter Stelle abschneiden
 
Nenn mich bescheurt, aber das heißt was für meine Schleife?

Xong 7. Feb 2008 14:14

Re: TStringlist ab bestimmter Stelle abschneiden
 
Zitat:

Zitat von Overburn
Nenn mich bescheurt, aber das heißt was für meine Schleife?

Stillstand der Zählvariablen!

Bernhard Geyer 7. Feb 2008 14:14

Re: TStringlist ab bestimmter Stelle abschneiden
 
Zitat:

Zitat von Overburn
Nenn mich bescheurt, aber das heißt was für meine Schleife?

Von oben nach unten, nicht von unten nach oben durchlaufen:

Delphi-Quellcode:
i := l2.Count-1;
while i >= l2.Count do begin
begin
  ...
  Dec(i);
end;

Xong 7. Feb 2008 14:22

Re: TStringlist ab bestimmter Stelle abschneiden
 
Zitat:

Zitat von Bernhard Geyer
Von oben nach unten, nicht von unten nach oben durchlaufen

Gute Idee.
Ist diese Variante merklich schneller?


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