Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Lazarus (IDE) (https://www.delphipraxis.net/81-lazarus-ide/)
-   -   Löschen aus der StringList verursacht Fehler, wieso? (https://www.delphipraxis.net/185234-loeschen-aus-der-stringlist-verursacht-fehler-wieso.html)

Perlsau 23. Mai 2015 21:54

AW: Löschen aus der StringList verursacht Fehler, wieso?
 
Ich denk mal, wenn du dranbleibst und dich regelmäßig mit Delphi bzw. Lazarus oder CodeTyphon (erweiterte Lazarus-IDE, aus meiner Sicht sehr zu empfehlen) befaßt, wird das schon. Das geht dir mit der Zeit quasi in Fleisch & Blut über und du träumst dann vielleicht sogar davon :lol:

Popov 23. Mai 2015 22:06

AW: Löschen aus der StringList verursacht Fehler, wieso?
 
Zitat:

Zitat von AlexII (Beitrag 1302858)
Man, man, voll easy... muss nur bisschen nachdenken... und selber solche Problemchen lösen. Vielen Dank euch!

Tröste dich. Auch wenn ich mich hier etwas aus dem Fenster lehne, so behaupte ich mal, dass das Vorwärts-Löschen von Items in der For-Schleife ein Fehler-Klassiker ist und irgendwann jedem passiert ist.

himitsu 23. Mai 2015 23:19

AW: Löschen aus der StringList verursacht Fehler, wieso?
 
Zitat:

Zitat von AlexII (Beitrag 1302840)
Ich verstehe nicht wieso...

Du könntes auch mal den Debugger benutzen und nachsehn. :roll:

Zitat:

Zitat von AlexII (Beitrag 1302840)
wird der Count etwa runtergezählt?

Wie bereits gesagt wurde, zählt Count zwar runter, aber die For-Schleife cached das Schleifenende. (es wird immer nur einmal zu Beginn ausgewertet)

Aber selbst wenn es das nicht zwischenspeichern würde, dann hättest du ein Problem, da du bei einer For-Schleife Einträge überspringt, wenn du was löschst, da die Schleife erbarmunglos hochzählt, aber die Einträge nach dem Gelöschten verschoben werden.

Also entweder rückwärts oder mit While-Schleife, egal wie rum, aber bei Vorwärts dort natürlich den Index nicht hochzählen, wenn grade gelöscht wurde.


PS: Das IF vor dem FOR kannst'e dir sparen, denn wenn die Liste leer ist, dann heißt es
Delphi-Quellcode:
for i := 0 to {count}0 - 1 do // 0 bis -1
// oder
for i := {count}0 - 1 downto 0 do
und das macht dann natürlich nichst.


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:48 Uhr.
Seite 2 von 2     12   

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