Page 1 sur 1

*current_element = DeleteElement()

Publié : ven. 15/nov./2013 1:44
par graph100
Actuellement la fonction DeleteElement() n'a pas de valeur de retour.
Or ce n'est absolument pas logique dans la mesure ou chacune des autres fonctions de liste retournent l'adresse du nouvel élément courant.

Je cite l'aide :
Aide PureBasic 5.20LTS a écrit :DeleteElement()

Syntaxe

DeleteElement(Liste() [, Options])
Description

Supprime l'élément courant de la liste.
Arguments

Liste() Le nom la liste créée à l'aide de la commande NewList.
Les parenthèses sont obligatoires après le nom de la liste.
Options (optionnel) Si ce paramètre est égal à 1, le nouvel élément courant sera le suivant.
Cette option veille à ce que il y aie toujours un élément en cours de validité après une suppression aussi longtemps que il y a encore des éléments de la liste.

Valeur de retour

Cette fonction n'a pas de valeur de retour.
Bref, ça serait pratique, et logique.

Re: *current_element = DeleteElement()

Publié : ven. 15/nov./2013 10:44
par Backup
faudrait meme que la valeur de retour soit egale a l'element en cours (celui qui remplace l'element disparu )
ou =0 si plus d'elements :)

Re: *current_element = DeleteElement()

Publié : ven. 15/nov./2013 13:00
par graph100
effectivement, j'ai oublié de le mentionner, mais c’était là ou je voulais en venir

Re: *current_element = DeleteElement()

Publié : ven. 15/nov./2013 13:23
par Ar-S
Dobro a écrit :ou =0 si plus d'elements :)
Oui !

Re: *current_element = DeleteElement()

Publié : ven. 15/nov./2013 13:52
par G-Rom
Je ne comprend pas trop pourquoi , tu voudrais quel élément , le suivant , le précédent ?

Re: *current_element = DeleteElement()

Publié : ven. 15/nov./2013 15:16
par Backup
G-Rom a écrit :Je ne comprend pas trop pourquoi , tu voudrais quel élément , le suivant , le précédent ?
justement , tu vois toi meme qu'a l'heure actuel , tu ne peux pas etre sur de ça ;)

avoir l'indice de l'element sur lequel le pointeur se retrouve apres un effacement serai un plus !

aaaaaaaaaa
bbbbbbbbbb
ccccccccccc
dddddddddd

on efface bbbbbbbbbb (qui etait pointé )

reste

aaaaaaaaaa
ccccccccccc
dddddddddd

mais l'element pointé c'est quoi ? aaaaaaaa ou ccccccccc ?

bon la doc dit que c'est le suivant .....
mais si on pouvais recuperer l'indice dans la foulée , ce serai pratique
et eviterai l'utilisation de la fonction
Index = ListIndex(Liste())

:)

Re: *current_element = DeleteElement()

Publié : ven. 15/nov./2013 15:35
par Ar-S
C'est vrai qu'avec un 1 en [option], on ne risque pas de se retrouver avec un element qui n'existe pas. (-1)
DeleteElement(list(), 1)

Re: *current_element = DeleteElement()

Publié : sam. 16/nov./2013 7:10
par graph100
le problème ne vient pas de la fonction. Elle fait ce que la doc dit.

Mais cette fonction serait bien mieux utilisée si comme toutes les autres de sa catégorie elle renvoyait le pointeur sur l'élément courant après l'opération de suppression.

à savoir :
@élément précédant par défaut,
@élément suivant si l'option 1 est utilisée
0 si il n'y a plus d'élément courant

Re: *current_element = DeleteElement()

Publié : ven. 28/févr./2014 18:48
par Fig
je plussoine (+1) :!: