InsertElement()

Syntaxe

Resultat = InsertElement(ListeChainee())
Description
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.

Argument

ListeChainee() - Le nom de votre variable liste chaînée, créée à l'aide de la commande NewList. Les parenthèses sont obligatoires après le nom de la liste.

Valeur de retour

La valeur renvoyée par cette commande peut être utilisée pour déterminer si le nouvel élément a pu être ajouté ou non (si la mémoire est insuffisante par exemple). Si le nouvel élément a été créé, cette commande renvoie une valeur différente de zéro. Si le nouvel élément n'a pu être créé, alors elle renvoie la valeur zéro. Pour programmeurs expérimentés:
La valeur renvoyée par cette commande est un pointeur vers le nouvel élément ou zéro si le nouvel élément n'a pu être crée. La structure de chaque élément est définie ci-dessous :
  Structure Element
    *Next.Element        ; Pointeur vers l'élément suivant de la liste ou zéro si c'est le dernier élément
    *Previous.Element    ; Pointeur vers l'élément précédent de la liste ou zéro si c'est le premier élément

    ; La structure utilisée par la liste suit directement ces 2 variables (ce qui implique que les
    ; données utilisateurs se situent à l'adresse du nouvel élément + 8 octets).
  EndStructure
Vous ne devriez pas changer les pointeurs du début de la liste, car ça casserait la structure interne de la liste.

Exemple:

  ; La manière la plus simple d'utiliser InsertElement
  NewList simple.w()
  InsertElement(simple())    ; Crée le premier élément de la liste
  simple() = 23

  InsertElement(simple())    ; La position courant est le premier élément, nous ajoutons cet élément au début de la liste
  simple() = 45              ; L'ancien premier élément est maintenant le second élément de la liste


  ; Ceci montre comment utiliser la valeur de retour de InsertElement
  NewList experimentes.l()
  If InsertElement(experimentes()) <> 0
    experimentes() = 12345
  Else
    MessageRequester("Erreur !", "Impossible d'allouer de la mémoire pour le nouvel élément", #PB_MessageRequester_OK)
  EndIf


  Structure Programmeur
    Nom.s
    Talent.b
  EndStructure

  Structure DingueDePureBasic
    *Next.DingueDePureBasic
    *Previous.DingueDePureBasic
    Nom.s      ; Le même champ que la structure 'Programmeur'
    Talent.b
  EndStructure

  NewList LesProgrammeurs.Programmeur()  ; La liste pour stocker les éléments

  *Element.DingueDePureBasic = InsertElement(LesProgrammeurs())
  If *Element<>0
    *Element\Nom = "Dave"
    *Element\Talent = 3   ; Celui-là, c'est un féru de PureBasic ! ;)
  Else
    MessageRequester("Erreur !", "Impossible d'allouer de la mémoire pour le nouvel élément", #PB_MessageRequester_OK)
  EndIf

OS Supportés

Tous

<- FirstElement() - LinkedList Index - LastElement() ->