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

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
mad
Messages : 32
Inscription : mar. 24/nov./2009 10:34

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

Message 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.
Mesa
Messages : 1126
Inscription : mer. 14/sept./2011 16:59

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

Message 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.
Avatar de l’utilisateur
graph100
Messages : 1318
Inscription : sam. 21/mai/2005 17:50

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

Message 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:
_________________________________________________
Mon site : CeriseCode (Attention Chantier perpétuel ;))
Mesa
Messages : 1126
Inscription : mer. 14/sept./2011 16:59

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

Message 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.
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

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

Message 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"
Avatar de l’utilisateur
graph100
Messages : 1318
Inscription : sam. 21/mai/2005 17:50

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

Message 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
_________________________________________________
Mon site : CeriseCode (Attention Chantier perpétuel ;))
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

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

Message 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 ;)
comtois
Messages : 5186
Inscription : mer. 21/janv./2004 17:48
Contact :

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

Message 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
http://purebasic.developpez.com/
Je ne réponds à aucune question technique en PV, utilisez le forum, il est fait pour ça, et la réponse peut profiter à tous.
mad
Messages : 32
Inscription : mar. 24/nov./2009 10:34

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

Message 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...
Répondre