Indirection

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Parole De JOJO
Messages : 446
Inscription : mar. 25/mai/2010 17:24
Localisation : Bnei Brak, Israel

Indirection

Message 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?
Avatar de l’utilisateur
Progi1984
Messages : 2659
Inscription : mar. 14/déc./2004 13:56
Localisation : France > Rennes
Contact :

Re: Indirection

Message par Progi1984 »

Ptet à voir du côté des Maps.
Parole De JOJO
Messages : 446
Inscription : mar. 25/mai/2010 17:24
Localisation : Bnei Brak, Israel

Re: Indirection

Message par Parole De JOJO »

non ce n'est pas du tout cela, j'ai essaye
gnozal
Messages : 832
Inscription : mar. 07/déc./2004 17:35
Localisation : France
Contact :

Re: Indirection

Message 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).
Parole De JOJO
Messages : 446
Inscription : mar. 25/mai/2010 17:24
Localisation : Bnei Brak, Israel

Re: Indirection

Message 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
Fred
Site Admin
Messages : 2809
Inscription : mer. 21/janv./2004 11:03

Re: Indirection

Message 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é)
Parole De JOJO
Messages : 446
Inscription : mar. 25/mai/2010 17:24
Localisation : Bnei Brak, Israel

Re: Indirection

Message par Parole De JOJO »

ok je vais essayer
merci bcp
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: Indirection

Message 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
Avatar de l’utilisateur
flaith
Messages : 1487
Inscription : jeu. 07/avr./2005 1:06
Localisation : Rennes
Contact :

Re: Indirection

Message par flaith »

Le sujet demandé n’existe pas.
:mrgreen:
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: Indirection

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

Re: Indirection

Message par Backup »

...
Dernière modification par Backup le mar. 19/août/2014 11:03, modifié 1 fois.
Parole De JOJO
Messages : 446
Inscription : mar. 25/mai/2010 17:24
Localisation : Bnei Brak, Israel

Re: Indirection

Message par Parole De JOJO »

dobro, comment je m'inscris sur ton site?
Fred
Site Admin
Messages : 2809
Inscription : mer. 21/janv./2004 11:03

Re: Indirection

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

Re: Indirection

Message par Backup »

pfff! frimeur ! :roll: :)

ça m'fais penser qu'avec les map, je pourrai arranger un peu mon PureGolo :)
Avatar de l’utilisateur
flaith
Messages : 1487
Inscription : jeu. 07/avr./2005 1:06
Localisation : Rennes
Contact :

Re: Indirection

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