Page 1 sur 1

en lua est-il possible de ?

Publié : 17 mars 2018, 17:31
par papoo
bonjour,
en lua est-il possible de transformer dynamiquement le contenu d'une variable en nom de variable dans une boucle?
je souhaite, dans une boucle for, concaténer la mention jsonValeur avec le nom d'un élément contenu dans un tableau pour alimenter une variable
si resultat_tableau = variable_a
je voudrais concaténer Jsonvaleur. et resultat_tableau pour faire
ma_nouvelle_variable = jsonValeur.variable_a
savez vous si cela est possible? je ne trouve rien, la mention Lua étant trop générique pour les moteurs de recherche

Re: en lua est-il possible de ?

Publié : 17 mars 2018, 17:54
par vil1driver
Salut,

pas certain de bien comprendre

je dirais

Code : Tout sélectionner

ma_nouvelle_variable = jsonValeur[variable_a]

Re: en lua est-il possible de ?

Publié : 17 mars 2018, 20:04
par domcars0
En lua, je pense que c'est comme en C, impossible d'avoir des noms de variable 'dynamiques'.Il te faut trouver une autre manière de faire.

Re: en lua est-il possible de ?

Publié : 17 mars 2018, 20:22
par papoo
vil1driver a écrit :Salut,

pas certain de bien comprendre

je dirais

Code : Tout sélectionner

ma_nouvelle_variable = jsonValeur[variable_a]
j'avais essayé sans succés

Re: en lua est-il possible de ?

Publié : 17 mars 2018, 21:09
par vil1driver
Tu aurais un exemple de contenu ?

Re: en lua est-il possible de ?

Publié : 17 mars 2018, 21:30
par papoo
j'ai trouvé le moyen de contourner le problème
j'arrive à générer le nom dynamiquement dans une boucle for avec

Code : Tout sélectionner

 _G[le résultat de ma boucle]
il faut par contre ne pas déclarer les variables en local

ça donne ça

Code : Tout sélectionner

local les_devices = {};
les_devices[#les_devices+1] = {device = "qtemois" , nom = "Consommation mois en cours"} -- 1er device
les_devices[#les_devices+1] = {device = "prixmois" , nom = "Coût mensuel"} -- 2éme device
les_devices[#les_devices+1] = {device = "tendance" , nom = "Tendance"} -- 3éme device

            qtemois = jsonValeur.qtemois
            prixmois = jsonValeur.prixmois
            tendance = jsonValeur.tendance

            for k,v in pairs(les_devices) do
                local variable = tostring(_G[v.device])
print(variable)
           end
                
si il y a mieux je suis preneur

Re: en lua est-il possible de ?

Publié : 23 mars 2018, 17:01
par landaisbenj
Montre un exemple a l’écris de avant et de après.

Genre si tu as une variable:

local variable = 'test'
print(variable) >test
que veux tu faire ?

print(jsonValeur..variable) >test
ou
print(variable) >jsonValeurtest

ou autre chose ?
jsonValeur c'est une chaine ou une variable ?

Re: en lua est-il possible de ?

Publié : 23 mars 2018, 21:07
par papoo
j'ai contourné le problème avec la solution au dessus pour ce script
https://easydomoticz.com/forum/viewtopi ... ets#p51452