Page 1 sur 1
[R] Création de variable dynamique
Posté : mar. 09 juin 2009 09:15
par lord1366
Bonjour,
Je souhaiterai créer des variables variables ou des noms de variables dynamiques
Car j'ai un fichier XML et je voudrais créer une variable par Node, par balise.
Exemple en
PHP :
Création de la variable de variable :
Code : Tout sélectionner
$$ma_variable
Initialisation :
$$ma_variable = "Test";
echo ${$ma_variable}"; // affiche test
Merci pour votre aide
Re: Création de variables variables ou nom de variable dynamique
Posté : mar. 09 juin 2009 15:23
par lord1366
Up !
Petit Exemple :
J'interroge un fichier XML :
Code : Tout sélectionner
$ATTENTE_MAX_POPUP_SAUV = $xml.selectSingleNode("/EXTRACT/ATTENTE_MAX_POPUP_SAUV")
$ATTENTE_MAX_POPUP_SAUV = $ATTENTE_MAX_POPUP_SAUV.firstChild.nodeValue
$ATTENTE_MAX_SAUV_FICHIER = $xml.selectSingleNode("/EXTRACT/ATTENTE_MAX_SAUV_FICHIER")
$ATTENTE_MAX_SAUV_FICHIER = $ATTENTE_MAX_SAUV_FICHIER.firstChild.nodeValue
Si j'ai 40 champs dans mon fichier XML je vais devoir faire la manip ci-dessus 40 fois, ce n'est pas propre, hors avec des variables variables, ça prendrai 3 lignes
Je m'en sert souvent en php pour de la génération de formulaires, de menu déroulants....
merci
Re: Création de variables variables ou nom de variable dynamique
Posté : mar. 09 juin 2009 16:23
par TaPuZ
Salut.
J'essaye juste de comprendre (désolé).
En fait, il s'agirait d'avoir une variable, dont une partie du nom est affectée par une variable, c'est ça?
Comme lorsqu'on a un $array[$a], où par exemple, on fait varier $a de 1 à $array[0] (cas classique des tableaux à contenu non fini)?
Re: Création de variables variables ou nom de variable dynamique
Posté : mar. 09 juin 2009 17:31
par lord1366
Bonjour,
Oui, c'est bien ça.
Je réexplique car c'est pas trop clair mon explication :
Code : Tout sélectionner
$nomvariable = "variable_variable"
For $y = 1 to 15 Step +1
${$nomvariable} & $y = " "
next
ça devrai me créer 15 variables nommées de $variable_variable1 à $variable_variable15
Merci pour votre aide ça allegerait pas mal de mes codes autoit
Re: Création de variables variables ou nom de variable dynamique
Posté : mar. 09 juin 2009 18:41
par orax
Peut-être comme ça, si j'ai bien compris :
Code : Tout sélectionner
For $y = 1 To 15
Assign("nomvariable" & $y, $y)
Next
MsgBox(0, "", Eval("nomvariable5"))
Re: Création de variables variables ou nom de variable dynamique
Posté : mar. 09 juin 2009 19:40
par sylvanie
Bonsoir,
Orax a raison pour cette piste, c'est effectivement le mot clé pour créer des noms de variables dynamiquement.
Pour les appeler par la suite, soit on peut écrire, comme l'a fait Orax, le nom "en dur", ou construire l'appel grâce à Eval
cf :
http://www.autoitscript.fr/forum/viewto ... sign#p7324
Re: Création de variables variables ou nom de variable dynamique
Posté : mar. 09 juin 2009 21:43
par Tlem
@lord1366
Merci de prendre le temps de lire les
règles de présentation d'un message.
Veuillez mettre la balise de titre, et les balises de code dans votre premier message.
Re: Création de variables variables ou nom de variable dynamique
Posté : mer. 10 juin 2009 09:00
par lord1366
Bonjour,
Merci pour votre aide ça fonctionne.
Par contre pas besoin d'utiliser Eval("nomvariable")
Exemple sur un fichier XML
Code : Tout sélectionner
$xml = ObjCreate("Msxml2.DOMDocument")
$xml.Load("G:\Cockpit\Développement\Autoit\XML\" & $Choix & ".xml")
$Extract = $xml.documentElement
If $Extract.childNodes.length > 0 Then
For $cpt = 0 To $Extract.childNodes.length - 1
;~ MsgBox(0,'',$Extract.childNodes.item($cpt).tagName)
;~ MsgBox(0,'',$Extract.childNodes.item($cpt).text)
Assign($Extract.childNodes.item($cpt).tagName, $Extract.childNodes.item($cpt).text,2)
Next
MsgBox(0,'',$ChildNode1)
EndIf
J'ai bien pris note des règles que j'appliquerai pour mes prochains messages.