Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.153 Beiträge
 
Delphi 12 Athens
 
#13

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

  Alt 23. Mai 2015, 23:19
Ich verstehe nicht wieso...
Du könntes auch mal den Debugger benutzen und nachsehn.

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.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (23. Mai 2015 um 23:22 Uhr)
  Mit Zitat antworten Zitat