En 4.30, il y avait un truc qu'on n'avait pas le droit de faire:
Code : Tout sélectionner
; Définir une liste
Structure test_struct
champ1.i
champ2.s
EndStructure
Global Newlist test.test_struct()
; Remplir la liste
For i=1 to 20
addElement(test())
test()\champ1 = i
test()\champ2 = "Coucou n°" + str(i)
Next i
; Parcours de la liste et suppression à la volée de certains éléments: Problème!
ForEach test()
If test()\champ1 > 0 and test()\champ1 < 10 ; [EDIT: l'erreur ne se produisait que si on efface le premier élément de la liste]
Debug "Suppression de l'élément n°"+Str(test()\champ1)
deleteElement(test()) ; <= ici, on efface l'élément courant
Else
debug test()\champ2
Endif
Next test() ; <= du coup, ici, PB ne sait plus faire le "Next"
Pourtant, en 4.31, le code ci-dessus fonctionne (et très bien, apparemment; c'est d'ailleurs assez pratique).
Du coup, j'ai deux questions:
- Est-ce que je peux faire des "deleteElement" au milieu d'un "ForEach" sans risque que le code m'efface n'importe quoi, ou ne fonctionne plus à la prochaine version de PB?
- Comment vous faites, vous, pour effacer des éléments dans une liste en cours d'utilisation ?