je me fais piéger par une structure identique à celle ci-dessous (simplifiée). Ma question est : quel est le moyen le plus simple pour éviter le saut de valeur (et donc de test) ?
J'ai pensé à
1) changer la valeur de l'élément à une valeur inutilisable (hors du test). Inconvénient la liste repasse entièrement (pas optimum)
2) ne pas utiliser foreach
3) qu'un forumeur aurait une meilleure idée que moi
A noter : un deletelement(test(),0) ne change rien (ce n'est pas lié au flag d'option)
Code : Tout sélectionner
Structure z
a.a
b.i
EndStructure
NewList test.z()
For t=1 To 9
AddElement(test())
test()\a = t
test()\b = 9
Next t
Debug ListSize(test())
trame$="012-3-5-7-89-6"
t = 1
Repeat
c = Val(Mid(trame$,t,1))
Debug "---- "+Str(c)
a$=""
ForEach test()
a$=a$+Str(test()\a)+" "
Next
Debug "filtre = "+a$
ForEach test()
Debug "Test sur element "+Str(test()\a)
If test()\a = c
Debug "Trouvé "+Str(test()\a)+" (et effacé)"
DeleteElement(test(),1)
Debug "courant "+Str(test()\a)
PreviousElement(test())
PreviousElement(test())
Debug "prochain "+Str(test()\a)
EndIf
Next
t + 1
Until ListSize(test()) = 0 Or t>Len(trame$)
