Si ça ne demande pas trop de boulots, ajouter une option pour lorsque qu'on merge un ou les élément d'une liste vers une autre, ceux-ci restent tout de même dans la 1er liste..
Exemple
Dans le code ci dessous je merge les éléments de B() vers A()...
J'aimerai cependant que les éléments ne disparaissent pas de A().
Un petit flag #PB_List_NoErase par exemple
Code : Tout sélectionner
Macro Sort(Liste,strucname)
SortStructuredList ( Liste, #PB_Sort_Ascending|#PB_Sort_NoCase, OffsetOf(strucname), TypeOf(strucname) )
EndMacro
Structure Info
CC.i
EndStructure
Global NewList A.Info()
Global NewList B.Info()
; Creation de la liste A
For i = 1 To 5
AddElement(A())
A()\CC = Random(5)
Next
; Création de la liste B
For i = 1 To 5
AddElement(B())
B()\CC = Random(10,6)
Next
; Trie des 2 listes par ordre croissant
Sort(A(),Info\CC)
Sort(B(),Info\CC)
; On vérifie
Debug "// Liste A() //"
ForEach A()
Debug A()\CC
Next
Debug "// Liste B() //"
ForEach B()
Debug B()\CC
Next
; On Merge les éléments de B vers A
ForEach A()
MergeLists(B(), A(), #PB_List_After)
Next
;Re-Trie
Sort(A(),Info\CC)
Debug ""
Debug "Après merge des listes"
Debug "// Liste A() //"
ForEach A()
Debug a()\CC
Next
Debug "Tout va bien..."
Debug "Mon soucis c'est d'afficher B() à nouveau"
Debug "// Liste B() //"
ForEach B()
Debug B()\CC
Next
Debug "A puuuu Rien"
Debug "Oui du coup ce code marche comme c'est précisé dans la doc.. C'est là mon soucis :D "