Thema: Delphi TIniFile und DeleteKey

Einzelnen Beitrag anzeigen

marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#10

Re: TIniFile und DeleteKey

  Alt 27. Sep 2006, 06:12
Guten Morgen.

Hawkeye hatte es ja in dem verlinkten thread schon erklärt. Bei einer vorwärts laufenden Zählschleife sägst du an dem Ast auf dem du sitzt - bildlich gesprochen. Der Endwert der Laufvariable in einer Zählschleife wird nur einmal ganz am Anfang ermittelt.

Nimm eine Liste mit zwei items, der Index läuft von 0 bis 1. Wenn das erste item innerhalb der Zählschleife gelöscht wird, passiert folgendes: die Liste verschiebt das zweite item an die Position des ersten, der maximale Listenindex ist nun 0, die Laufvariable wird von 0 auf 1 erhöht, das Abbruchkriterium der Schleife (Laufvariable größer als Endwert) ist nicht erfüllt (1 > 1 ist Falsch) und ein Zugriff auf das nicht mehr vorhandene item mit dem Index 1 (welches durch die Verschiebung nach dem Löschen jetzt den Index 0 hat) findet statt - und scheitert mit einer Exception.

Leicht nachzuvollziehen, warum das bei rückwärts laufenden Zählschleifen nicht passieren kann - oder?

Grüße vom marabu
  Mit Zitat antworten Zitat