Trouver la valeur d'une variable dont nous ne connaissont que le nom que sous forme de string
8 réponses
Pierre Archambault
Bonjour à tous,
Cette question peut sembler incongrue mais je vous explique le contexte.
Dans un Form, l'usager entre le nom d'une variable qui, dans le code du
programme, contient par exemple le nombre de dossiers.
À partir du Textbox contenant ce nom de variable (qui peut différer d'une
fois à l'autre) je voudrais pouvoir obtenir la valeur de cette variable.
Dans cet exemple, le nom de la variable est "NbreDossiers" et je voudrai
savoir comment coder mon programme pour que la string "NbreDossiers" soit
interprétée comme étant la variable elle-même. Bien sûr, s'il s'agissait
toujours de la même variable, je n'aurais pas ce problème mais justement,
l'utilisateur peut entrer un grand nombre de noms de variables différents.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Patrice Henrio
Pierre Archambault a écrit :
Bonjour à tous,
Cette question peut sembler incongrue mais je vous explique le contexte.
Dans un Form, l'usager entre le nom d'une variable qui, dans le code du programme, contient par exemple le nombre de dossiers.
À partir du Textbox contenant ce nom de variable (qui peut différer d'une fois à l'autre) je voudrais pouvoir obtenir la valeur de cette variable.
Dans cet exemple, le nom de la variable est "NbreDossiers" et je voudrai savoir comment coder mon programme pour que la string "NbreDossiers" soit interprétée comme étant la variable elle-même. Bien sûr, s'il s'agissait toujours de la même variable, je n'aurais pas ce problème mais justement, l'utilisateur peut entrer un grand nombre de noms de variables différents.
Merci pour vos lumières.
Pierre
Si les variables considérées sont des propriétés d'un objet, on pourrait utiliser CallByName
Par exemple une classe cMesvariables
Option Explicit
'variables locales de stockage des valeurs de propriétés Private mvarNb As Long 'copie locale Private mvarCh As String 'copie locale Public Property Let Ch(ByVal vData As String) 'utilisé lors de l'affectation d'une valeur à la propriété, du coté gauche de l'affectation. 'Syntax: X.Ch = 5 mvarCh = vData End Property
Public Property Get Ch() As String 'utilisé lors de la lecture de la valeur de la propriété, du coté droit de l'instruction. 'Syntax: Debug.Print X.Ch Ch = mvarCh End Property
Public Property Let Nb(ByVal vData As Long) 'utilisé lors de l'affectation d'une valeur à la propriété, du coté gauche de l'affectation. 'Syntax: X.Nb = 5 mvarNb = vData End Property
Public Property Get Nb() As Long 'utilisé lors de la lecture de la valeur de la propriété, du coté droit de l'instruction. 'Syntax: Debug.Print X.Nb Nb = mvarNb End Property
Une forme et un bouton
Option Explicit Private Sub Command1_Click() Dim CL As New cMesVariables, V As String CL.Ch = "essai" V = CallByName(CL, "Ch", VbGet)
End Sub
En appuyant sur le bouton, on récupère bien la valeur "essai" dans la variable V
En adaptant, en particulier en fonction du type de retour cela doit pouvoir se faire.
<msdn> La fonction CallByName permet d'employer une chaîne pour spécifier une propriété ou une méthode au moment de l'exécution. La signature de la fonction CallByName est la suivante :
Result = CallByName(Object, ProcedureName, CallType, Arguments())
Le premier argument de la fonction CallByName prend le nom de l'objet à traiter. Le deuxième argument, ProcedureName, prend une chaîne contenant le nom de la méthode ou de la propriété à invoquer. L'argument CallType prend une constante représentant le type de procédure à invoquer : une méthode (vbMethod), une propriété let (vbLet), une propriété get (vbGet) ou une propriété set (vbSet). L'argument final est facultatif, il prend un tableau de type Variant contenant des arguments pour la procédure. </msdn>
Pierre Archambault a écrit :
Bonjour à tous,
Cette question peut sembler incongrue mais je vous explique le contexte.
Dans un Form, l'usager entre le nom d'une variable qui, dans le code du
programme, contient par exemple le nombre de dossiers.
À partir du Textbox contenant ce nom de variable (qui peut différer d'une
fois à l'autre) je voudrais pouvoir obtenir la valeur de cette variable.
Dans cet exemple, le nom de la variable est "NbreDossiers" et je voudrai
savoir comment coder mon programme pour que la string "NbreDossiers" soit
interprétée comme étant la variable elle-même. Bien sûr, s'il s'agissait
toujours de la même variable, je n'aurais pas ce problème mais justement,
l'utilisateur peut entrer un grand nombre de noms de variables différents.
Merci pour vos lumières.
Pierre
Si les variables considérées sont des propriétés d'un objet, on pourrait
utiliser CallByName
Par exemple une classe cMesvariables
Option Explicit
'variables locales de stockage des valeurs de propriétés
Private mvarNb As Long 'copie locale
Private mvarCh As String 'copie locale
Public Property Let Ch(ByVal vData As String)
'utilisé lors de l'affectation d'une valeur à la propriété, du coté
gauche de l'affectation.
'Syntax: X.Ch = 5
mvarCh = vData
End Property
Public Property Get Ch() As String
'utilisé lors de la lecture de la valeur de la propriété, du coté droit
de l'instruction.
'Syntax: Debug.Print X.Ch
Ch = mvarCh
End Property
Public Property Let Nb(ByVal vData As Long)
'utilisé lors de l'affectation d'une valeur à la propriété, du coté
gauche de l'affectation.
'Syntax: X.Nb = 5
mvarNb = vData
End Property
Public Property Get Nb() As Long
'utilisé lors de la lecture de la valeur de la propriété, du coté droit
de l'instruction.
'Syntax: Debug.Print X.Nb
Nb = mvarNb
End Property
Une forme et un bouton
Option Explicit
Private Sub Command1_Click()
Dim CL As New cMesVariables, V As String
CL.Ch = "essai"
V = CallByName(CL, "Ch", VbGet)
End Sub
En appuyant sur le bouton, on récupère bien la valeur "essai" dans la
variable V
En adaptant, en particulier en fonction du type de retour cela doit
pouvoir se faire.
<msdn>
La fonction CallByName permet d'employer une chaîne pour spécifier une
propriété ou une méthode au moment de l'exécution. La signature de la
fonction CallByName est la suivante :
Result = CallByName(Object, ProcedureName, CallType, Arguments())
Le premier argument de la fonction CallByName prend le nom de l'objet à
traiter. Le deuxième argument, ProcedureName, prend une chaîne contenant
le nom de la méthode ou de la propriété à invoquer. L'argument CallType
prend une constante représentant le type de procédure à invoquer : une
méthode (vbMethod), une propriété let (vbLet), une propriété get (vbGet)
ou une propriété set (vbSet). L'argument final est facultatif, il prend
un tableau de type Variant contenant des arguments pour la procédure.
</msdn>
Cette question peut sembler incongrue mais je vous explique le contexte.
Dans un Form, l'usager entre le nom d'une variable qui, dans le code du programme, contient par exemple le nombre de dossiers.
À partir du Textbox contenant ce nom de variable (qui peut différer d'une fois à l'autre) je voudrais pouvoir obtenir la valeur de cette variable.
Dans cet exemple, le nom de la variable est "NbreDossiers" et je voudrai savoir comment coder mon programme pour que la string "NbreDossiers" soit interprétée comme étant la variable elle-même. Bien sûr, s'il s'agissait toujours de la même variable, je n'aurais pas ce problème mais justement, l'utilisateur peut entrer un grand nombre de noms de variables différents.
Merci pour vos lumières.
Pierre
Si les variables considérées sont des propriétés d'un objet, on pourrait utiliser CallByName
Par exemple une classe cMesvariables
Option Explicit
'variables locales de stockage des valeurs de propriétés Private mvarNb As Long 'copie locale Private mvarCh As String 'copie locale Public Property Let Ch(ByVal vData As String) 'utilisé lors de l'affectation d'une valeur à la propriété, du coté gauche de l'affectation. 'Syntax: X.Ch = 5 mvarCh = vData End Property
Public Property Get Ch() As String 'utilisé lors de la lecture de la valeur de la propriété, du coté droit de l'instruction. 'Syntax: Debug.Print X.Ch Ch = mvarCh End Property
Public Property Let Nb(ByVal vData As Long) 'utilisé lors de l'affectation d'une valeur à la propriété, du coté gauche de l'affectation. 'Syntax: X.Nb = 5 mvarNb = vData End Property
Public Property Get Nb() As Long 'utilisé lors de la lecture de la valeur de la propriété, du coté droit de l'instruction. 'Syntax: Debug.Print X.Nb Nb = mvarNb End Property
Une forme et un bouton
Option Explicit Private Sub Command1_Click() Dim CL As New cMesVariables, V As String CL.Ch = "essai" V = CallByName(CL, "Ch", VbGet)
End Sub
En appuyant sur le bouton, on récupère bien la valeur "essai" dans la variable V
En adaptant, en particulier en fonction du type de retour cela doit pouvoir se faire.
<msdn> La fonction CallByName permet d'employer une chaîne pour spécifier une propriété ou une méthode au moment de l'exécution. La signature de la fonction CallByName est la suivante :
Result = CallByName(Object, ProcedureName, CallType, Arguments())
Le premier argument de la fonction CallByName prend le nom de l'objet à traiter. Le deuxième argument, ProcedureName, prend une chaîne contenant le nom de la méthode ou de la propriété à invoquer. L'argument CallType prend une constante représentant le type de procédure à invoquer : une méthode (vbMethod), une propriété let (vbLet), une propriété get (vbGet) ou une propriété set (vbSet). L'argument final est facultatif, il prend un tableau de type Variant contenant des arguments pour la procédure. </msdn>
LE TROLL
Bonjour,
Je ne comprends pas tout, si tu as un nom de variable, en somme, pour connaître ce nom de variable, il faut bien qu'elle soit déclarée dans ton code, et qu'elle contienne une valeur, non ? Donc, par exemple:
Dim nom1, nom2, nom3, valeur, ligne nom1=2: nom2=4: nom3=8 Delect Case text1 Case "nom1":valeur = nom1 Case "nom2":valeur = nom2 Case "nom3":valeur = nom3 End Select '''''''''''''''''''''''''''' Tu peux aussi déclarer tes variables dans un fichier, et ensuite faire un accès fichier, du genre: écrit_fichier = "nom1 2" écrit_fichier = "nom2 4" écrit_fichier = "nom3 8" ' et en lecture: lit_ligne_fihier = ligne if text1= mid(ligne,1,len(text1)) then valeur = mid(ligne, len(text1)+2, lgrNb) '''''''''''''''''''''''''''''''''''''''''''
Tu peux aussi déclarer une variable qui contient son nom + sa valeur en chaîne nom1= "nom1 1" nom2= "nom2 2"
Il doit y avoir plein de solutions...
-- Romans, logiciels, email, site personnel http://irolog.free.fr/joe.htm ------------------------------------------------------------------------------------ "Pierre Archambault" a écrit dans le message de news: 7Oroj.433$ | Bonjour à tous, | | Cette question peut sembler incongrue mais je vous explique le contexte. | | Dans un Form, l'usager entre le nom d'une variable qui, dans le code du | programme, contient par exemple le nombre de dossiers. | | À partir du Textbox contenant ce nom de variable (qui peut différer d'une | fois à l'autre) je voudrais pouvoir obtenir la valeur de cette variable. | | Dans cet exemple, le nom de la variable est "NbreDossiers" et je voudrai | savoir comment coder mon programme pour que la string "NbreDossiers" soit | interprétée comme étant la variable elle-même. Bien sûr, s'il s'agissait | toujours de la même variable, je n'aurais pas ce problème mais justement, | l'utilisateur peut entrer un grand nombre de noms de variables différents. | | Merci pour vos lumières. | | Pierre | |
Bonjour,
Je ne comprends pas tout, si tu as un nom de
variable, en somme, pour connaître ce nom de
variable, il faut bien qu'elle soit déclarée dans
ton code, et qu'elle contienne une valeur, non ?
Donc, par exemple:
Dim nom1, nom2, nom3, valeur, ligne
nom1=2: nom2=4: nom3=8
Delect Case text1
Case "nom1":valeur = nom1
Case "nom2":valeur = nom2
Case "nom3":valeur = nom3
End Select
''''''''''''''''''''''''''''
Tu peux aussi déclarer tes variables dans un
fichier, et ensuite faire un accès fichier, du
genre:
écrit_fichier = "nom1 2"
écrit_fichier = "nom2 4"
écrit_fichier = "nom3 8"
'
et en lecture:
lit_ligne_fihier = ligne
if text1= mid(ligne,1,len(text1)) then valeur =
mid(ligne, len(text1)+2, lgrNb)
'''''''''''''''''''''''''''''''''''''''''''
Tu peux aussi déclarer une variable qui contient
son nom + sa valeur en chaîne
nom1= "nom1 1"
nom2= "nom2 2"
Il doit y avoir plein de solutions...
--
Romans, logiciels, email, site personnel
http://irolog.free.fr/joe.htm
------------------------------------------------------------------------------------
"Pierre Archambault"
<pierre.archambault@videotron.ca> a écrit dans le
message de news:
7Oroj.433$cR.10179@weber.videotron.net...
| Bonjour à tous,
|
| Cette question peut sembler incongrue mais je
vous explique le contexte.
|
| Dans un Form, l'usager entre le nom d'une
variable qui, dans le code du
| programme, contient par exemple le nombre de
dossiers.
|
| À partir du Textbox contenant ce nom de variable
(qui peut différer d'une
| fois à l'autre) je voudrais pouvoir obtenir la
valeur de cette variable.
|
| Dans cet exemple, le nom de la variable est
"NbreDossiers" et je voudrai
| savoir comment coder mon programme pour que la
string "NbreDossiers" soit
| interprétée comme étant la variable elle-même.
Bien sûr, s'il s'agissait
| toujours de la même variable, je n'aurais pas ce
problème mais justement,
| l'utilisateur peut entrer un grand nombre de
noms de variables différents.
|
| Merci pour vos lumières.
|
| Pierre
|
|
Je ne comprends pas tout, si tu as un nom de variable, en somme, pour connaître ce nom de variable, il faut bien qu'elle soit déclarée dans ton code, et qu'elle contienne une valeur, non ? Donc, par exemple:
Dim nom1, nom2, nom3, valeur, ligne nom1=2: nom2=4: nom3=8 Delect Case text1 Case "nom1":valeur = nom1 Case "nom2":valeur = nom2 Case "nom3":valeur = nom3 End Select '''''''''''''''''''''''''''' Tu peux aussi déclarer tes variables dans un fichier, et ensuite faire un accès fichier, du genre: écrit_fichier = "nom1 2" écrit_fichier = "nom2 4" écrit_fichier = "nom3 8" ' et en lecture: lit_ligne_fihier = ligne if text1= mid(ligne,1,len(text1)) then valeur = mid(ligne, len(text1)+2, lgrNb) '''''''''''''''''''''''''''''''''''''''''''
Tu peux aussi déclarer une variable qui contient son nom + sa valeur en chaîne nom1= "nom1 1" nom2= "nom2 2"
Il doit y avoir plein de solutions...
-- Romans, logiciels, email, site personnel http://irolog.free.fr/joe.htm ------------------------------------------------------------------------------------ "Pierre Archambault" a écrit dans le message de news: 7Oroj.433$ | Bonjour à tous, | | Cette question peut sembler incongrue mais je vous explique le contexte. | | Dans un Form, l'usager entre le nom d'une variable qui, dans le code du | programme, contient par exemple le nombre de dossiers. | | À partir du Textbox contenant ce nom de variable (qui peut différer d'une | fois à l'autre) je voudrais pouvoir obtenir la valeur de cette variable. | | Dans cet exemple, le nom de la variable est "NbreDossiers" et je voudrai | savoir comment coder mon programme pour que la string "NbreDossiers" soit | interprétée comme étant la variable elle-même. Bien sûr, s'il s'agissait | toujours de la même variable, je n'aurais pas ce problème mais justement, | l'utilisateur peut entrer un grand nombre de noms de variables différents. | | Merci pour vos lumières. | | Pierre | |
Patrice Henrio
LE TROLL a écrit :
Bonjour,
Je ne comprends pas tout, si tu as un nom de variable, en somme, pour connaître ce nom de variable, il faut bien qu'elle soit déclarée dans ton code, et qu'elle contienne une valeur, non ? Donc, par exemple:
Dim nom1, nom2, nom3, valeur, ligne nom1=2: nom2=4: nom3=8 Delect Case text1 Case "nom1":valeur = nom1 Case "nom2":valeur = nom2 Case "nom3":valeur = nom3 End Select '''''''''''''''''''''''''''' Tu peux aussi déclarer tes variables dans un fichier, et ensuite faire un accès fichier, du genre: écrit_fichier = "nom1 2" écrit_fichier = "nom2 4" écrit_fichier = "nom3 8" ' et en lecture: lit_ligne_fihier = ligne if text1= mid(ligne,1,len(text1)) then valeur = mid(ligne, len(text1)+2, lgrNb) '''''''''''''''''''''''''''''''''''''''''''
Tu peux aussi déclarer une variable qui contient son nom + sa valeur en chaîne nom1= "nom1 1" nom2= "nom2 2"
Il doit y avoir plein de solutions...
non pas vraiment. D'après ce que j'ai compris la demande est l'équivalent de eval en lisp qui peut interpréter une variable texte comme étant le nom d'une variable
par exemple
dim test as long, V as long
test=3 V=Eval("test")
' à ce moment V vaut 3
LE TROLL a écrit :
Bonjour,
Je ne comprends pas tout, si tu as un nom de
variable, en somme, pour connaître ce nom de
variable, il faut bien qu'elle soit déclarée dans
ton code, et qu'elle contienne une valeur, non ?
Donc, par exemple:
Dim nom1, nom2, nom3, valeur, ligne
nom1=2: nom2=4: nom3=8
Delect Case text1
Case "nom1":valeur = nom1
Case "nom2":valeur = nom2
Case "nom3":valeur = nom3
End Select
''''''''''''''''''''''''''''
Tu peux aussi déclarer tes variables dans un
fichier, et ensuite faire un accès fichier, du
genre:
écrit_fichier = "nom1 2"
écrit_fichier = "nom2 4"
écrit_fichier = "nom3 8"
'
et en lecture:
lit_ligne_fihier = ligne
if text1= mid(ligne,1,len(text1)) then valeur =
mid(ligne, len(text1)+2, lgrNb)
'''''''''''''''''''''''''''''''''''''''''''
Tu peux aussi déclarer une variable qui contient
son nom + sa valeur en chaîne
nom1= "nom1 1"
nom2= "nom2 2"
Il doit y avoir plein de solutions...
non pas vraiment.
D'après ce que j'ai compris la demande est l'équivalent de eval en lisp
qui peut interpréter une variable texte comme étant le nom d'une variable
Je ne comprends pas tout, si tu as un nom de variable, en somme, pour connaître ce nom de variable, il faut bien qu'elle soit déclarée dans ton code, et qu'elle contienne une valeur, non ? Donc, par exemple:
Dim nom1, nom2, nom3, valeur, ligne nom1=2: nom2=4: nom3=8 Delect Case text1 Case "nom1":valeur = nom1 Case "nom2":valeur = nom2 Case "nom3":valeur = nom3 End Select '''''''''''''''''''''''''''' Tu peux aussi déclarer tes variables dans un fichier, et ensuite faire un accès fichier, du genre: écrit_fichier = "nom1 2" écrit_fichier = "nom2 4" écrit_fichier = "nom3 8" ' et en lecture: lit_ligne_fihier = ligne if text1= mid(ligne,1,len(text1)) then valeur = mid(ligne, len(text1)+2, lgrNb) '''''''''''''''''''''''''''''''''''''''''''
Tu peux aussi déclarer une variable qui contient son nom + sa valeur en chaîne nom1= "nom1 1" nom2= "nom2 2"
Il doit y avoir plein de solutions...
non pas vraiment. D'après ce que j'ai compris la demande est l'équivalent de eval en lisp qui peut interpréter une variable texte comme étant le nom d'une variable
par exemple
dim test as long, V as long
test=3 V=Eval("test")
' à ce moment V vaut 3
LE TROLL
Bonjour Patrice,
eval en lisp
C'est quoi ???
-- Merci beaucoup, au revoir et à bientôt :o) ------ Romans, logiciels, email, site personnel http://irolog.free.fr/joe.htm ------------------------------------------------------------------------------------ "Patrice Henrio" a écrit dans le message de news:
| LE TROLL a écrit : | > Bonjour, | > | > Je ne comprends pas tout, si tu as un nom de | > variable, en somme, pour connaître ce nom de | > variable, il faut bien qu'elle soit déclarée dans | > ton code, et qu'elle contienne une valeur, non ? | > Donc, par exemple: | > | > Dim nom1, nom2, nom3, valeur, ligne | > nom1=2: nom2=4: nom3=8 | > Delect Case text1 | > Case "nom1":valeur = nom1 | > Case "nom2":valeur = nom2 | > Case "nom3":valeur = nom3 | > End Select | > '''''''''''''''''''''''''''' | > Tu peux aussi déclarer tes variables dans un | > fichier, et ensuite faire un accès fichier, du | > genre: | > écrit_fichier = "nom1 2" | > écrit_fichier = "nom2 4" | > écrit_fichier = "nom3 8" | > ' | > et en lecture: | > lit_ligne_fihier = ligne | > if text1= mid(ligne,1,len(text1)) then valeur | > mid(ligne, len(text1)+2, lgrNb) | > ''''''''''''''''''''''''''''''''''''''''''' | > | > Tu peux aussi déclarer une variable qui contient | > son nom + sa valeur en chaîne | > nom1= "nom1 1" | > nom2= "nom2 2" | > | > Il doit y avoir plein de solutions... | > | non pas vraiment. | D'après ce que j'ai compris la demande est l'équivalent de eval en lisp | qui peut interpréter une variable texte comme étant le nom d'une variable | | par exemple | | dim test as long, V as long | | test=3 | V=Eval("test") | | | ' à ce moment V vaut 3
Bonjour Patrice,
eval en lisp
C'est quoi ???
--
Merci beaucoup, au revoir et à bientôt :o)
------
Romans, logiciels, email, site personnel
http://irolog.free.fr/joe.htm
------------------------------------------------------------------------------------
"Patrice Henrio" <patrice.henrio@laposte.net> a
écrit dans le message de news:
OjrE8mSZIHA.484@TK2MSFTNGP06.phx.gbl...
| LE TROLL a écrit :
| > Bonjour,
| >
| > Je ne comprends pas tout, si tu as un nom
de
| > variable, en somme, pour connaître ce nom de
| > variable, il faut bien qu'elle soit déclarée
dans
| > ton code, et qu'elle contienne une valeur, non
?
| > Donc, par exemple:
| >
| > Dim nom1, nom2, nom3, valeur, ligne
| > nom1=2: nom2=4: nom3=8
| > Delect Case text1
| > Case "nom1":valeur = nom1
| > Case "nom2":valeur = nom2
| > Case "nom3":valeur = nom3
| > End Select
| > ''''''''''''''''''''''''''''
| > Tu peux aussi déclarer tes variables dans un
| > fichier, et ensuite faire un accès fichier, du
| > genre:
| > écrit_fichier = "nom1 2"
| > écrit_fichier = "nom2 4"
| > écrit_fichier = "nom3 8"
| > '
| > et en lecture:
| > lit_ligne_fihier = ligne
| > if text1= mid(ligne,1,len(text1)) then valeur
| > mid(ligne, len(text1)+2, lgrNb)
| > '''''''''''''''''''''''''''''''''''''''''''
| >
| > Tu peux aussi déclarer une variable qui
contient
| > son nom + sa valeur en chaîne
| > nom1= "nom1 1"
| > nom2= "nom2 2"
| >
| > Il doit y avoir plein de solutions...
| >
| non pas vraiment.
| D'après ce que j'ai compris la demande est
l'équivalent de eval en lisp
| qui peut interpréter une variable texte comme
étant le nom d'une variable
|
| par exemple
|
| dim test as long, V as long
|
| test=3
| V=Eval("test")
|
|
| ' à ce moment V vaut 3
-- Merci beaucoup, au revoir et à bientôt :o) ------ Romans, logiciels, email, site personnel http://irolog.free.fr/joe.htm ------------------------------------------------------------------------------------ "Patrice Henrio" a écrit dans le message de news:
| LE TROLL a écrit : | > Bonjour, | > | > Je ne comprends pas tout, si tu as un nom de | > variable, en somme, pour connaître ce nom de | > variable, il faut bien qu'elle soit déclarée dans | > ton code, et qu'elle contienne une valeur, non ? | > Donc, par exemple: | > | > Dim nom1, nom2, nom3, valeur, ligne | > nom1=2: nom2=4: nom3=8 | > Delect Case text1 | > Case "nom1":valeur = nom1 | > Case "nom2":valeur = nom2 | > Case "nom3":valeur = nom3 | > End Select | > '''''''''''''''''''''''''''' | > Tu peux aussi déclarer tes variables dans un | > fichier, et ensuite faire un accès fichier, du | > genre: | > écrit_fichier = "nom1 2" | > écrit_fichier = "nom2 4" | > écrit_fichier = "nom3 8" | > ' | > et en lecture: | > lit_ligne_fihier = ligne | > if text1= mid(ligne,1,len(text1)) then valeur | > mid(ligne, len(text1)+2, lgrNb) | > ''''''''''''''''''''''''''''''''''''''''''' | > | > Tu peux aussi déclarer une variable qui contient | > son nom + sa valeur en chaîne | > nom1= "nom1 1" | > nom2= "nom2 2" | > | > Il doit y avoir plein de solutions... | > | non pas vraiment. | D'après ce que j'ai compris la demande est l'équivalent de eval en lisp | qui peut interpréter une variable texte comme étant le nom d'une variable | | par exemple | | dim test as long, V as long | | test=3 | V=Eval("test") | | | ' à ce moment V vaut 3
tking
Patrice Henrio a utilisé son clavier pour écrire :
non pas vraiment. D'après ce que j'ai compris la demande est l'équivalent de eval en lisp qui peut interpréter une variable texte comme étant le nom d'une variable
par exemple
dim test as long, V as long
test=3 V=Eval("test")
' à ce moment V vaut 3
Non car en VB :
Dim v, test As Integer test = 3 v = test ' Text1.Text = v (renvoi 3)
Mais j'ai pensé à une autre solution concernant le problème soulevé c'est d'utiliser un tableau,
variable = text1.text (stock le mot clef entré par l'utilisateur) valeur(1) = variable
Patrice Henrio a utilisé son clavier pour écrire :
non pas vraiment.
D'après ce que j'ai compris la demande est l'équivalent de eval en lisp qui
peut interpréter une variable texte comme étant le nom d'une variable
par exemple
dim test as long, V as long
test=3
V=Eval("test")
' à ce moment V vaut 3
Non car en VB :
Dim v, test As Integer
test = 3
v = test
' Text1.Text = v (renvoi 3)
Mais j'ai pensé à une autre solution concernant le problème soulevé
c'est d'utiliser un tableau,
variable = text1.text (stock le mot clef entré par l'utilisateur)
valeur(1) = variable
Patrice Henrio a utilisé son clavier pour écrire :
non pas vraiment. D'après ce que j'ai compris la demande est l'équivalent de eval en lisp qui peut interpréter une variable texte comme étant le nom d'une variable
par exemple
dim test as long, V as long
test=3 V=Eval("test")
' à ce moment V vaut 3
Non car en VB :
Dim v, test As Integer test = 3 v = test ' Text1.Text = v (renvoi 3)
Mais j'ai pensé à une autre solution concernant le problème soulevé c'est d'utiliser un tableau,
variable = text1.text (stock le mot clef entré par l'utilisateur) valeur(1) = variable
Patrice Henrio
tking a écrit :
Patrice Henrio a utilisé son clavier pour écrire :
non pas vraiment. D'après ce que j'ai compris la demande est l'équivalent de eval en lisp qui peut interpréter une variable texte comme étant le nom d'une variable
par exemple
dim test as long, V as long
test=3 V=Eval("test")
' à ce moment V vaut 3
Non car en VB :
Dim v, test As Integer test = 3 v = test ' Text1.Text = v (renvoi 3)
Mais j'ai pensé à une autre solution concernant le problème soulevé c'est d'utiliser un tableau,
variable = text1.text (stock le mot clef entré par l'utilisateur) valeur(1) = variable
A moins de n'avoir rien compris à la demande, il s'agit de trouver la valeur d'une variable dont le nom est passée sous forme de chaîne. Ce n'est pas possible nativement en VB.
tking a écrit :
Patrice Henrio a utilisé son clavier pour écrire :
non pas vraiment.
D'après ce que j'ai compris la demande est l'équivalent de eval en
lisp qui peut interpréter une variable texte comme étant le nom d'une
variable
par exemple
dim test as long, V as long
test=3
V=Eval("test")
' à ce moment V vaut 3
Non car en VB :
Dim v, test As Integer
test = 3
v = test
' Text1.Text = v (renvoi 3)
Mais j'ai pensé à une autre solution concernant le problème soulevé
c'est d'utiliser un tableau,
variable = text1.text (stock le mot clef entré par l'utilisateur)
valeur(1) = variable
A moins de n'avoir rien compris à la demande, il s'agit de trouver la
valeur d'une variable dont le nom est passée sous forme de chaîne. Ce
n'est pas possible nativement en VB.
Patrice Henrio a utilisé son clavier pour écrire :
non pas vraiment. D'après ce que j'ai compris la demande est l'équivalent de eval en lisp qui peut interpréter une variable texte comme étant le nom d'une variable
par exemple
dim test as long, V as long
test=3 V=Eval("test")
' à ce moment V vaut 3
Non car en VB :
Dim v, test As Integer test = 3 v = test ' Text1.Text = v (renvoi 3)
Mais j'ai pensé à une autre solution concernant le problème soulevé c'est d'utiliser un tableau,
variable = text1.text (stock le mot clef entré par l'utilisateur) valeur(1) = variable
A moins de n'avoir rien compris à la demande, il s'agit de trouver la valeur d'une variable dont le nom est passée sous forme de chaîne. Ce n'est pas possible nativement en VB.
tking
Patrice Henrio a présenté l'énoncé suivant :
A moins de n'avoir rien compris à la demande, il s'agit de trouver la valeur d'une variable dont le nom est passée sous forme de chaîne. Ce n'est pas possible nativement en VB.
Oui et bien en rusant, il suffit de créer deux tableaux, dans un tu mets la variable chaîne et dans l'autre la valeur, puis par correspondance tu obtiens ta valeur en interrogeant la variable chaîne. Ce n'est peut être pas la meilleur solution mais ça marche.
Patrice Henrio a présenté l'énoncé suivant :
A moins de n'avoir rien compris à la demande, il s'agit de trouver la valeur
d'une variable dont le nom est passée sous forme de chaîne. Ce n'est pas
possible nativement en VB.
Oui et bien en rusant, il suffit de créer deux tableaux, dans un tu
mets la variable chaîne et dans l'autre la valeur, puis par
correspondance tu obtiens ta valeur en interrogeant la variable chaîne.
Ce n'est peut être pas la meilleur solution mais ça marche.
A moins de n'avoir rien compris à la demande, il s'agit de trouver la valeur d'une variable dont le nom est passée sous forme de chaîne. Ce n'est pas possible nativement en VB.
Oui et bien en rusant, il suffit de créer deux tableaux, dans un tu mets la variable chaîne et dans l'autre la valeur, puis par correspondance tu obtiens ta valeur en interrogeant la variable chaîne. Ce n'est peut être pas la meilleur solution mais ça marche.
LE TROLL
Bonjour,
Ben oui, c'est faisable en biaisant, mais là, ce serait mieux si celui qui a posé la question, expliquait pourquoi il lui faut absolument ce nom de variable... Ce serai plutôt le programme qu'il faudrait revoir, et aborder le problème sous un autre angle...
-- Merci beaucoup, au revoir et à bientôt :o) ------ Romans, logiciels, email, site personnel http://irolog.free.fr/joe.htm ------------------------------------------------------------------------------------ "tking" a écrit dans le message de news: | Patrice Henrio a présenté l'énoncé suivant : | | > A moins de n'avoir rien compris à la demande, il s'agit de trouver la valeur | > d'une variable dont le nom est passée sous forme de chaîne. Ce n'est pas | > possible nativement en VB. | | Oui et bien en rusant, il suffit de créer deux tableaux, dans un tu | mets la variable chaîne et dans l'autre la valeur, puis par | correspondance tu obtiens ta valeur en interrogeant la variable chaîne. | Ce n'est peut être pas la meilleur solution mais ça marche. | |
Bonjour,
Ben oui, c'est faisable en biaisant, mais là, ce
serait mieux si celui qui a posé la question,
expliquait pourquoi il lui faut absolument ce nom
de variable... Ce serai plutôt le programme qu'il
faudrait revoir, et aborder le problème sous un
autre angle...
--
Merci beaucoup, au revoir et à bientôt :o)
------
Romans, logiciels, email, site personnel
http://irolog.free.fr/joe.htm
------------------------------------------------------------------------------------
"tking" <thing@w.e> a écrit dans le message de
news: mn.21a17d825a20bb9f.68335@w.e...
| Patrice Henrio a présenté l'énoncé suivant :
|
| > A moins de n'avoir rien compris à la demande,
il s'agit de trouver la valeur
| > d'une variable dont le nom est passée sous
forme de chaîne. Ce n'est pas
| > possible nativement en VB.
|
| Oui et bien en rusant, il suffit de créer deux
tableaux, dans un tu
| mets la variable chaîne et dans l'autre la
valeur, puis par
| correspondance tu obtiens ta valeur en
interrogeant la variable chaîne.
| Ce n'est peut être pas la meilleur solution mais
ça marche.
|
|
Ben oui, c'est faisable en biaisant, mais là, ce serait mieux si celui qui a posé la question, expliquait pourquoi il lui faut absolument ce nom de variable... Ce serai plutôt le programme qu'il faudrait revoir, et aborder le problème sous un autre angle...
-- Merci beaucoup, au revoir et à bientôt :o) ------ Romans, logiciels, email, site personnel http://irolog.free.fr/joe.htm ------------------------------------------------------------------------------------ "tking" a écrit dans le message de news: | Patrice Henrio a présenté l'énoncé suivant : | | > A moins de n'avoir rien compris à la demande, il s'agit de trouver la valeur | > d'une variable dont le nom est passée sous forme de chaîne. Ce n'est pas | > possible nativement en VB. | | Oui et bien en rusant, il suffit de créer deux tableaux, dans un tu | mets la variable chaîne et dans l'autre la valeur, puis par | correspondance tu obtiens ta valeur en interrogeant la variable chaîne. | Ce n'est peut être pas la meilleur solution mais ça marche. | |