une liste chainée c'est en fait une pile d'assiettes !!Tonio a écrit :j'ai du mal avec les listes chainées et structures en faites .
c'est juste une façon de stocker des valeurs (nombre ou chaine) ....
tu poses dedans une valeur , et la suivante va s’empiler par dessus
on creer notre pile d'assiettes (notre liste chaînée ) de cette façon
ici je creer une liste qui va s'appeler "ma_liste.s"
Code : Tout sélectionner
newlist ma_liste.s()
ensuite on va poser un premier élément , une chaine , dedans
on previens le compilo de notre volonté d'ajouter une chaine dans notre liste de cette façon :
Code : Tout sélectionner
AddElement(ma_Liste.s()) ; on decide d'ajouter un element dans la liste (on ajoute une assiette )
Code : Tout sélectionner
ma_liste.s() = "assiette numero 1" ; voila notre chaine "assiette numero 1" est ajoutée dans la liste
donc on previens le compilo qu'on veux encore ajouter une valeur (une chaine ici ) dans la liste (on ajoute sur la pile .. car une liste est un empilement )
Code : Tout sélectionner
AddElement(ma_Liste.s()) ; on decide d'ajouter un element dans la liste (on ajoute une assiette )
ma_liste.s() = "assiette numero 2"
Code : Tout sélectionner
Newlist ma_liste.s()
AddElement(ma_Liste.s()) ; on decide d'jouter un element dans la liste (on ajoute une assiette )
ma_liste.s() = "assiette numero 1"
AddElement(ma_Liste.s()) ; on decide d'jouter un element dans la liste (on ajoute une assiette )
ma_liste.s() = "assiette numero 2"
si maintenant on veux lire le contenu de notre liste (de notre pile d'assiettes)
voici comme on fait :
soit on lit la totalité de notre liste ainsi :
Code : Tout sélectionner
ForEach Ma_Liste() ; ça va lire TOUTE les valeurs contenue dans notre liste
Debug Ma_Liste() ; et ça affiche au fur et a mesure de la lecture
Next
donc :
Code : Tout sélectionner
SelectElement(Ma_Liste(), 1) ; ici on demande au pointeur d'element de la liste de se mettre sur le 2em element de la liste (ici 1 parceque le premier element d'une liste a le numero 0 )
debug "ceci est le deuxieme element de ma_liste() : "+ Ma_Liste() ; affichage de l'element numero 2
il suffit de faire :
Code : Tout sélectionner
SelectElement(Ma_Liste(), 0) ; ici on demande au pointeur d'element de la liste de se mettre sur le 2em element de la liste (ici 1 parceque le premier element d'une liste a le numero 0 )
debug "ceci est le Premier element de ma_liste() : "+ Ma_Liste()
voila , il existe ensuite des fonctions (voir la doc ) pour effacer tout le contenu de la liste , ou bien seulement un élément
on peut aussi trier une liste ,copier une liste etc .....
une liste est semblable a une pile d'assiette ou bien a une "Liste" de course , ou de contact d'un carnet d'adresse par exemple etc ...
voici le code au complet :
Code : Tout sélectionner
calldebugger
Newlist ma_liste.s()
AddElement(ma_Liste.s()) ; on décide d'ajouter un élément dans la liste (on ajoute une assiette )
ma_liste.s() = "assiette numero 1"
AddElement(ma_Liste.s()) ; on décide d'ajouter un élément dans la liste (on ajoute une assiette )
ma_liste.s() = "assiette numero 2"
ForEach Ma_Liste()
Debug Ma_Liste()
Next
debug "*************************"
SelectElement(Ma_Liste(), 1) ; ici on demande au pointeur d’élément de la liste de se mettre sur le 2em élément de la liste (ici 1 parce que le premier élément d'une liste a le numero 0 )
debug "ceci est le deuxieme élément de ma_liste() : "+ Ma_Liste()
SelectElement(Ma_Liste(), 0) ; ici on demande au pointeur d’élément de la liste de se mettre sur le 2em élément de la liste (ici 0 parce que le premier élément d'une liste a le numero 0 )
debug "ceci est le Premier element de ma_liste() : "+ Ma_Liste()