Page 1 sur 1

Création d'un résident avec structure et map

Publié : dim. 26/févr./2012 22:46
par mad
Bonjour à tous,

Je rencontre un souci, lorsque j'essaye de créer un résident pour Purebasic, car j'inclue dans une structure un dictionnaire de hachages. (MAP)

En effet le résident se créer correctement sans aucune erreur, mais la structure n'existe pas dedans.

Lorsque que je commente mon MAP alors la structure se créer correctement.

Avez-vous déjà rencontré ce souci ?

Exemple :

Code : Tout sélectionner

Structure toupe
	cc$
	Map MAP_kiki.s()
EndStructure
Merci à tous pour vos réponses.

Re: Création d'un résident avec structure et map

Publié : jeu. 01/mars/2012 9:35
par Mesa
C'est peut-être le même problème que j'ai eu ici
http://www.purebasic.fr/french/viewtopi ... =1&t=12382

flaith
normalement et conformément aux objets dynamiques présents dans une structure, celle-ci doit d'abord être initialisée
Essaie de déclarer (d'initialiser) la map avant de l'intégrer dans la structure pour voir.

Mesa.

Re: Création d'un résident avec structure et map

Publié : jeu. 01/mars/2012 14:38
par graph100
ou lala ! Mesa !!

L'objet extérieur à la structure est complétement différent de celui qui est dans la structure ! Et ce même si ils ont le même nom.
Ce qu'il faut initialiser, c'est la variable avec la structure assignée :

Code : Tout sélectionner

Structure test
	bip.l
	
	Map Ma_map.l()
EndStructure

Define.test ma_variable

InitializeStructure(@ma_variable, test)


ma_variable.test\Ma_map("a") = 5


Debug ma_variable.test\Ma_map("a")
Ce code fonctionne aussi sans déclarer, mais il vaut mieux le faire pour éviter les erreurs de type accès mémoire

Sinon pour le problème de mad, j'ai pas de réponse, je ne connais pas le fonctionnement des residents :oops:

Re: Création d'un résident avec structure et map

Publié : jeu. 01/mars/2012 15:07
par Mesa
La fonction InitializeStructure() n'apparait pas dans l'aide purebasic 4.61b1 :!:

Y en a d'autre comme ça ?

Si on peut créer 2 map de même nom, n'est-ce pas sujet à bug ?

De toute façon, d'après ce post http://purebasic.developpez.com/faq/?pa ... #residents de comtois, il est impossible de mettre une map dans un résident ni Array, ni List.
ça vaudrait le coup de mettre le post de comtois directement dans l'aide de PB !

Mesa.

Re: Création d'un résident avec structure et map

Publié : jeu. 01/mars/2012 16:05
par Backup
Mesa a écrit :La fonction InitializeStructure() n'apparait pas dans l'aide purebasic 4.61b1 :!:
.
faut pas faire d'affirmation sur des préjugés ;)

Image

par contre, je dois avouer , que je ne connaissais pas cette fonction :lol:

tu trouvera ça en rubrique "Les fonctions du compilateur"

Re: Création d'un résident avec structure et map

Publié : jeu. 01/mars/2012 17:47
par graph100
PBHelp a écrit :Syntax
InitializeStructure(*Pointeur, Structure)

Description

InitializeStructure initialise la zone mémoire structurée. C'est particulièrement utile quand la structure contient des tableaux dynamiques, des listes ou des maps qui doivent être allouées en interne par PureBasic. 'Structure' est le nom de la structure qui sera utilisée pour effectuer l'initialisation. Il n'y a pas de contrôle pour s'assurer que la zone mémoire est bien du type 'Structure' spécifié, donc il est impératif de manipuler cette commande avec précaution.
Exemple

Structure People
Name$
Age.l
List Friends.s()
EndStructure

*Student.People = AllocateMemory(SizeOf(People))
InitializeStructure(*Student, People)

; Now the list is ready to use
;
AddElement(*Student\Friends())
*Student\Friends() = "John"

AddElement(*Student\Friends())
*Student\Friends() = "Yann"

; Print out the list content
;
ForEach *Student\Friends()
Debug *Student\Friends()
Next
j'ai la version 4.60x86

Re: Création d'un résident avec structure et map

Publié : jeu. 01/mars/2012 18:56
par Backup
graph100 a écrit : j'ai la version 4.60x86
ça change rien , la 4.61 est une beta , elle dispose donc du meme fichier Help que la 4.60 ;)

Re: Création d'un résident avec structure et map

Publié : jeu. 01/mars/2012 19:12
par comtois
Mesa a écrit :il est impossible de mettre une map dans un résident ni Array, ni List.
Impossible pour l'instant, si j'en crois la réponse de Fred

Re: Création d'un résident avec structure et map

Publié : jeu. 01/mars/2012 21:35
par mad
Bonsoir à tous.

Pour la répons de Fred c'est bien dommage, du coup pour ma part je ne pourrais pas sortir tout de suite les fonctions de "parser" XML que je souhaitait.
Bon, bah j'ai quand même mise en production la MADLib 5.3

Je vais donc utiliser surement un autre système avec une base de données SQLLite en mémoire. Nous verrons bien...