Page 1 sur 2
Indirection
Publié : ven. 29/oct./2010 10:45
par Parole De JOJO
Existe-il un moyen de manipuler une variable dont on ne connait pas le nom?
Exemple:
Code : Tout sélectionner
Procedure test(variable.s,valeur.l)
#(variable)=valeur ; la valeur stoke dans "variable" deviens une variable.
EndProcedure
test("a",18) ; et la je veux que "a" prenne la valeur 18
j'avais dans le temps une machine TI-89, et ca marchait avec le signe #, qui refairait a une autre variable. Cela existe-il sur purebasic?
Re: Indirection
Publié : ven. 29/oct./2010 10:45
par Progi1984
Ptet à voir du côté des Maps.
Re: Indirection
Publié : ven. 29/oct./2010 11:00
par Parole De JOJO
non ce n'est pas du tout cela, j'ai essaye
Re: Indirection
Publié : ven. 29/oct./2010 11:14
par gnozal
Ce n'est pas possible.
Purebasic n'est pas un interpréteur, le nom d'une variable n'a plus de signification une fois le programme compilé (hors débogage).
Re: Indirection
Publié : ven. 29/oct./2010 11:22
par Parole De JOJO
c'est vrai, j'y ais pas pense
il n'y a donc pas de solution?
la verite est que je viends de revoir map et peut etre que je pourrais changer un peu mon code et l'y adapter
Re: Indirection
Publié : ven. 29/oct./2010 11:24
par Fred
une map avec les addresses des variables devrait faire l'affaire, mais il faudra que la variable soit déjà definie à compilation (car Purebasic est un language compilé)
Re: Indirection
Publié : ven. 29/oct./2010 12:05
par Parole De JOJO
ok je vais essayer
merci bcp
Re: Indirection
Publié : ven. 29/oct./2010 12:16
par Backup
ce que tu veux faire , c'est en fait ce qu'on fait lorsqu'on ecrit un interpreteur
va voir ici, la partie qui traite des variables
http://michel.dobro.free.fr/forum_phpbb ... p=426#p426
Re: Indirection
Publié : ven. 29/oct./2010 12:29
par flaith
Le sujet demandé n’existe pas.

Re: Indirection
Publié : ven. 29/oct./2010 12:39
par Backup
Merci Flaith
lien corrigé
grosso modo
pour simuler une variable, il faut utiliser une structure !!
Structure variable
nom.s
valeur.s
EndStructure
Global Dim var.variable(0)
Procedure test(nom.s,valeur)
var(0)\nom.s=nom.s
var(0)\valeur.s= str (valeur)
EndProcedure
test( "a" ,18 )
Debug "la variable :" +var(0)\nom.s+ " contient la valeur : " +var(0)\valeur.s
et voici comment on affecte 10 variables, avec une valeur aleatoire
Declare test(nom.s,valeur,index)
Structure variable
nom.s
valeur.s
EndStructure
Global Dim var.variable(9) ; pour 10 variable
; on va attribuer des valeurs et des noms de variables au pif
; pour 10 variables
For index=0 To 9
nom_variable$= chr (index+65)
valeur_au_pif= random (100)+1
test(nom_variable$,valeur_au_pif,index)
Next index
; on va afficher le contenue de nos variables
For i=0 To 9
Debug "la variable :" +var(i)\nom.s+ " contient la valeur : " +var(i)\valeur.s
Next i
Procedure test(nom.s,valeur,index)
var(index)\nom.s=nom.s
var(index)\valeur.s= str (valeur)
EndProcedure
Re: Indirection
Publié : ven. 29/oct./2010 13:04
par Backup
...
Re: Indirection
Publié : ven. 29/oct./2010 13:26
par Parole De JOJO
dobro, comment je m'inscris sur ton site?
Re: Indirection
Publié : ven. 29/oct./2010 13:39
par Fred
Avec une map c'est beaucoup plus simple et plus rapide à l'execution qu'en utilisant un tableau

. Code non testé:
Code : Tout sélectionner
OpenConsole()
NewMap Variables.l()
Variables("age") = 10
Variables("taille") = 20
Variable$ = Input()
If FindMapElement(Variables(), Variable$)
Debug "Variable: "+Variable$+" trouvée: "+Str(Variable())
EndIf
Re: Indirection
Publié : ven. 29/oct./2010 14:05
par Backup
pfff! frimeur !
ça m'fais penser qu'avec les map, je pourrai arranger un peu mon PureGolo

Re: Indirection
Publié : ven. 29/oct./2010 15:40
par flaith
Dobro a écrit :Merci Flaith
lien corrigé

De rien m'sieur

sauf que maintenant j'ai ca
Vous n’êtes pas autorisé à lire ce forum.
