Ich bin in 3.94 auf etwas gestoßen, was ich klarstellen möchte, sodass es auch in der Hilfe von 4.00 erwähnt wird. Ich war nämlich ganz schön

als ich dieses "undokumentierte" Verhalten erkannt habe. Bitte keine Haue, wenn's doch falsch ist
Ich demonstriere es anhand dem Beispiel aus der Hilfe:
Code: Alles auswählen
NewList Number()
AddElement(Number())
Number() = 10
AddElement(Number())
Number() = 20
AddElement(Number())
Number() = 30
SelectElement(Number(), 2) ; von mir
*buffer=@Number() ; von mir
ForEach Number()
; ChangeCurrentElement(Number(), *buffer) ; von mir
Debug Number() ; wird 10, 20 und 30 ausgeben
Next
Folgendes: Ich blättere zum 3. Eintrag einer LL. Ich speichere den Eintrrag
*buffer=@Number(). Wenn ich in *buffer also den Zeiger zum 3. Element gespeichert habe und im diesem Beispiel die ChangeElement-Kommentarzeile aktiviere, dann wird eben
nicht 10, 20, 30 ausgegeben, sondern nur noch 30.
Ich bin hierauf gestoßen, als ich in einer ForEach Schleife dieselbe LL nochmal mit einer anderen Schleife nach doppelten Eiinträgen durchsucht habe (unter Verwendung von
NextElement()).
Frage: Ich dachte,
ForEach macht da weiter, wo es aufgehört hat, sodass es immun gegen manuelles herumblättern in derselben LL ist?