Page 1 sur 1

Liste chainée

Publié : mer. 18/mai/2005 10:31
par Nfred
Bonjour tout le monde,

J'aurai une petite question concernant les Listes Chainées : Est-il possible de faire une liste chainée-chainée à une autre liste ?

en décodé :

Un exemple bidon pour expliquer ce que je souhaite faire avec les listes chainées. On peut créer un tableau sauf que je ne connais pas la taille max donc une liste correspond mieux aux besoins.

Je veux creer N boutons pouvant contenir Z lignes de textes.
j'aurai pu faire

Code : Tout sélectionner

Dim tableau.s(1000,1000)
pour 1000 boutons possibles et 1000 lignes de texte sauf que c'est gourmand en mémoire et pas propre à mes yeux donc j'ai fais ce qui suis:

Code : Tout sélectionner

Structure StructMultiButtonList
  ListTexte.s       
  nbel.l        
EndStructure

Structure StructMultiButtonType
  state.l             
  nbutton.l      
  donnee.s[50]         
  img.l[2]              
  text.s                
  ListGagetText.StructMultiButtonList                ; <====== liste dans la liste
EndStructure

NewList bouton.StructMultiButtonType()

bouton()\(ListGagetText()\ListTexte)=10             ; <====== message d'erreur
Et là j'obtiens une erreur barbare (structure field missing) car le compilateur ne peut trouver le contenu d'une liste d'une liste (compliqué ça !)

si quelqu'un peut m'aider...

Publié : mer. 18/mai/2005 11:03
par Oliv
Est-ce le code qui suis que tu cherches à faire ? Si c'est bien ça, tu mettais des parenthèses là où il ne le fallait pas.

Code : Tout sélectionner

Structure StructMultiButtonList 
  ListTexte.s        
  nbel.l        
EndStructure 

Structure StructMultiButtonType 
  state.l              
  nbutton.l      
  donnee.s[50]          
  img.l[2]              
  text.s                
  ListGagetText.StructMultiButtonList                ; <====== liste dans la liste 
EndStructure 

NewList bouton.StructMultiButtonType() 

bouton()\ListGagetText\ListTexte="10"     
Si tu cherches à faire Liste_Primaire()\Liste_Secondaire()\Texte je crois que ce n'est pas possible

Publié : mer. 18/mai/2005 12:39
par Nfred
Merci à toi Oliv !
:wink:

Publié : ven. 20/mai/2005 20:57
par Dr. Dri
si tu veux faire ce genre de chose (liste dans une liste) il faut recoder toi-meme les listes chainées..
si tu veux tu peux utiliser ce code...
http://purebasic.hmt-forum.com/viewtopi ... ight=liste

ce n'est pas la dernière version mais si tu veux je pourrais poster le code (elle est plus rapide car le CountList et le ListIndex sont précalculés comme en PB)

Dri ;)