Page 1 sur 1

Copier une partie de liste dans une autre liste

Publié : lun. 03/avr./2017 9:49
par Micoute
Bonjour à tous,

Pour l'éveil et l'éducation de mes petits enfants, j'ai créé une liste structurée où on trouve l'état, les régions et les capitales et je souhaiterais quand je sélectionne un état, pouvoir copier les parties correspondantes de la liste mère, dans la liste fille.

je vous remercie tous pour votre aide prècieuse.

Re: Copier une partie de liste dans une autre liste

Publié : lun. 03/avr./2017 10:31
par microdevweb
Bonjour Micoute,

A part avec une boucle je ne voie pas comment

petit exemple

Code : Tout sélectionner

Structure type
  nom.s
  valeur.l
EndStructure
Global NewList lst1.type()
Global NewList lst2.type()
For N=0 To 10 
  With lst1()
    AddElement(lst1())
    \nom="Teste_"+Str(N)
    \valeur=N
  EndWith
Next

Procedure Recherche(txt.s)
  ClearList(lst2())
  ForEach lst1()
    With lst1()
      If \nom=txt
        AddElement(lst2())
        CopyStructure(@lst1(),@lst2(),type)
      EndIf
    EndWith
  Next
EndProcedure

Recherche("Teste_2")

ForEach lst2()
  With lst2()
    Debug \nom+"      "+Str(\valeur)
  EndWith
Next



Re: Copier une partie de liste dans une autre liste

Publié : lun. 03/avr./2017 13:13
par Kwai chang caine
Tu peux peut etre aussi jouer avec les pointeurs comme BERIKCO :wink:
http://www.purebasic.fr/english/viewtop ... 07d#p43615
Il copie toute la liste, mais je pense que l'on doit pouvoir en copier qu'une partie avec le même principe

Re: Copier une partie de liste dans une autre liste

Publié : lun. 03/avr./2017 19:38
par Micoute
Merci pour vos réponses est la suivante:

Code : Tout sélectionner

...
Select EventType()
   Case #PB_EventType_LeftClick
      FindMapElement(Choix$(), Chr(EventGadget() + 65))
      ResetList(MaListe())
      ClearList(Etat())
      While NextElement(MaListe())
         If MaListe()\Etat =  Choix$()
            AddElement(Etat())
            Etat()\Etat = MaListe()\Etat
            Etat()\Capitale = MaListe()\Capitale
            Etat()\Region = MaListe()\Region
            Etat()\Bonne_Reponse = Etat()\Capitale
         EndIf
      Wend   
   EndSelect
...
Ca ressemble beaucoup au code de microdevweb et ça fonctionne.