NewList code()
InsertElement(code())
code() = 3
Debug ListIndex(code()) ; ListIndex renvoit -1 à la place de 0
Debug code() ; La liste fonctionne malgrès tout
NewList code()
InsertElement(code())
code() = 3
Debug ListIndex(code()) ; ListIndex renvoit -1 à la place de 0
Debug code() ; La liste fonctionne malgrès tout
la doc dit :
Renvoie dans Index la position de l'élément courant
c'est normal, puisque avant de la lire, on commence toujours avant le premier element !! (c'est a dire -1 car -1 c'est avant Zero !! )
Insère un nouvel élément avant l'élément courant, ou au début de la liste si la liste est vide (c-a-d si elle ne contient pas d'élément). Ce nouvel élément devient l'élément courant de la liste.
@Dobro
Quoi que tu en dise, pour moi, il y a bien un bug.
NewList code() ; Tu pars d'une liste totalement vide
InsertElement(code()) ; Tu ajoutes un élément.
Insère un nouvel élément avant l'élément courant, ou au début de la liste si la liste est vide (c-a-d si elle ne contient pas d'élément). Ce nouvel élément devient l'élément courant de la liste.
Le premier élément d'une liste, c'est bien toujours 0. Pas -1
L'élément courant est celui qu'on vient d'ajouter dans la liste qui était vide, donc ListIndex() devrait bien être 0, et non -1
NewList code()
InsertElement(code()) : code() = 3
Debug ListIndex(code()) ; ListIndex renvoit -1 à la place de 0
Debug code() ; La liste fonctionne malgrès tout
ForEach code():Next ; On fait un tour de la liste, et ListIndex est remis à jour
Debug ListIndex(code()) ; ListIndex renvoit 0
Chris a écrit :Ben oui. Le bug, c'est que ListIndex() n'est pas remis à jour quand tu insères un élément.
ben peut etre, faudrai en parler au forum anglais,pour voir
c'est embetant, parceque si c'est un bug, je vais avoir pas mal de chose a changer dans mon pureGolo3D a la prochaine mise a jour de Purebasic ....
NewList Code()
For i = 0 To 20
AddElement(Code()) : Code() = i
Next
; On sélectionne le 11 eme élément, et on insère une valeur de 125
SelectElement(Code(), 11) : Debug Str(ListIndex(Code()))+" - "+Str(Code())
InsertElement(Code()) : Code() = 125 : Debug Str(ListIndex(Code()))+" - "+Str(Code())
Debug " ---------------------------------------- "
; CallDebugger
ForEach Code()
Debug Str(ListIndex(Code()))+" - "+Str(Code())
Next
NewList Code1()
For i = 0 To 20
InsertElement(Code1()) : Code1() = i
Next
Debug " ---------------------------------------- "
ForEach Code1()
Debug "Index "+Str(ListIndex(Code1()))+" - Valeur "+Str(Code1())
Next