Manipuler une map par son adresse
Publié : mer. 09/nov./2016 18:51
Hello tout le monde,
je voudrais savoir s'il est possible de une map structurée à partir de son adresse.
L'exemple ci-après n'a aucun sens car on pourrait passer la Map en paramètre de la procédure, mais c'est juste pour expliquer le truc...
Le seul moyen que j'ai trouvé est d'encapsuler la map dans une structure, mais c'est lourdingue...
Merci
il est vraiment en mousse cet exemple...
je voudrais savoir s'il est possible de une map structurée à partir de son adresse.
L'exemple ci-après n'a aucun sens car on pourrait passer la Map en paramètre de la procédure, mais c'est juste pour expliquer le truc...
Code : Tout sélectionner
Structure Valeurs
Valeur.i
txt.s
EndStructure
Structure Test
Type.b
Val.Valeurs
EndStructure
NewMap MyMap1.Test()
NewMap MyMap2.Test()
AddMapElement(MyMap1(), "Map1")
MyMap1()\Type = 1
MyMap1()\Val\txt = "qqchose"
MyMap1()\Val\Valeur = 5
AddMapElement(MyMap2(), "Map2")
MyMap2()\Type = 2
MyMap2()\Val\txt = "autre"
MyMap2()\Val\Valeur = 7
Procedure Traitement(Type.b)
Shared MyMap1(), MyMap2()
NewMap *pt.Test()
Select Type
Case 1
*pt = @MyMap1()
Case 2
*pt = @MyMap2()
EndSelect
; Traitement
ForEach *pt()
Debug *pt()\Val\Valeur
Next
EndProcedure
Traitement(MyMap1()\Type)
Code : Tout sélectionner
Structure Valeurs
Valeur.i
txt.s
EndStructure
Structure Test
Type.b
Val.Valeurs
EndStructure
Structure MaMap
Map MyMap.Test()
EndStructure
Define M1.MaMap
Define M2.MaMap
AddMapElement(M1\MyMap(), "Map1")
M1\MyMap()\Type = 1
M1\MyMap()\Val\txt = "qqchose"
M1\MyMap()\Val\Valeur = 5
AddMapElement(M2\MyMap(), "Map2")
M2\MyMap()\Type = 2
M2\MyMap()\Val\txt = "autre"
M2\MyMap()\Val\Valeur = 7
Procedure Traitement(Type.b)
Shared M1, M2
*pt.MaMap
Select Type
Case 1
*pt = @M1
Case 2
*pt = @M2
EndSelect
; Traitement
ForEach *pt\MyMap()
Debug *pt\MyMap()\Val\txt
Next
EndProcedure
Traitement(M1\MyMap()\Type)
il est vraiment en mousse cet exemple...