Moin,
ich weiß nicht ganz wie ich es erklären soll. Ich habe ein Array. In einer for-Schleife soll eine Gegebenheit geprüft werden und wenn diese zutrifft ein Eintrag entfernt werden. Allerdings ist das ein Problem, den die Schleife sieht wie folgt aus:
Delphi-Quelltext
1: 2: 3: 4: 5: 6:
| for i := 0 to (Length(Events) - 1) do if MArray[i].Name = NameVar then begin DeleteElement(MArray, i); Break; end; |
Wenn ich jetzt ein Element aus dem Array lösche, stimmt die Länge natürlich nicht mehr, nach der das Programm aber zählt. Zwangsläufig versucht das Programm dann also außerhalb des Arrays eine Aktion durchzuführen was wiederum zu einer Exception führt. In einer Zählschleife kann ich "i" nicht von Hand verändern, daher meine Frage, wie ich das am besten löse. Ich hätte an eine Kombination von Break gedacht und die Schleife dann neu starten, aber das wirkt alles etwas überdimensioniert. Gibt es da keine einfachere integrierte Lösung?
Danke,
LuMa
Moderiert von
Narses: Topic aus Sonstiges (Delphi) verschoben am Do 27.06.2013 um 20:47