[R] Création de variable dynamique

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
lord1366
Niveau 2
Niveau 2
Messages : 16
Enregistré le : mer. 28 mai 2008 18:15
Status : Hors ligne

[R] Création de variable dynamique

#1

Message 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
Modifié en dernier par ani le mer. 10 juin 2009 09:57, modifié 2 fois.
Raison : Ajout des balises + modification du titre
lord1366
Niveau 2
Niveau 2
Messages : 16
Enregistré le : mer. 28 mai 2008 18:15
Status : Hors ligne

Re: Création de variables variables ou nom de variable dynamique

#2

Message 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
TaPuZ
Niveau 4
Niveau 4
Messages : 75
Enregistré le : jeu. 14 mai 2009 17:10
Status : Hors ligne

Re: Création de variables variables ou nom de variable dynamique

#3

Message 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)?
A bientôt,
T@PµZ.
____________________________________
lord1366
Niveau 2
Niveau 2
Messages : 16
Enregistré le : mer. 28 mai 2008 18:15
Status : Hors ligne

Re: Création de variables variables ou nom de variable dynamique

#4

Message 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
Avatar du membre
orax
Modérateur
Modérateur
Messages : 1479
Enregistré le : lun. 23 mars 2009 04:50
Localisation : ::1
Status : Hors ligne

Re: Création de variables variables ou nom de variable dynamique

#5

Message 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"))
De petits détails peuvent faire toute la différence. — Quand la boule de neige commence à rouler… poussez-la. (Columbo)
Avatar du membre
sylvanie
Niveau 11
Niveau 11
Messages : 1556
Enregistré le : jeu. 26 juil. 2007 21:31
Localisation : Paris
Status : Hors ligne

Re: Création de variables variables ou nom de variable dynamique

#6

Message 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
Toi qui cherche à mettre le doigt sur la solution, appuie sur F1.
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11798
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: Création de variables variables ou nom de variable dynamique

#7

Message 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.
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
lord1366
Niveau 2
Niveau 2
Messages : 16
Enregistré le : mer. 28 mai 2008 18:15
Status : Hors ligne

Re: Création de variables variables ou nom de variable dynamique

#8

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