AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Lazarus (IDE) Löschen aus der StringList verursacht Fehler, wieso?
Thema durchsuchen
Ansicht
Themen-Optionen

Löschen aus der StringList verursacht Fehler, wieso?

Ein Thema von AlexII · begonnen am 23. Mai 2015 · letzter Beitrag vom 24. Mai 2015
Antwort Antwort
Seite 2 von 2     12   
Perlsau
(Gast)

n/a Beiträge
 
#11

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

  Alt 23. Mai 2015, 22:54
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
  Mit Zitat antworten Zitat
Popov
(Gast)

n/a Beiträge
 
#12

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

  Alt 23. Mai 2015, 23:06
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.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

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

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

  Alt 24. Mai 2015, 00: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.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu (24. Mai 2015 um 00:22 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 17:23 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