Domotique-Home Posté(e) le 22 mai 2014 Signaler Posté(e) le 22 mai 2014 Bonjour je cherche a placer un tableau dans une variable globale. Avez vous une idée ? J'ai créée une variable "mon_tableau" = 1,2,3,4,5,60 et je voudrais la récupérer dans le code LUA comme un tableau pour récupérer une valeur. Exemple: local mon_tableau = fibaro:getGlobal('mon_tableau'); local devices = {mon_tableau}; fibaro:debug(devices[2]); bien sur l'exemple me retourne une erreur de type [ERROR] 21:42:20: line :debug (arg 2), expected 'string const &' got 'nil' Merci pour votre aide. 1
Steven Posté(e) le 22 mai 2014 Signaler Posté(e) le 22 mai 2014 Tu peux malheureusement stocké que des chaînes de caractères Tu peux les stocker sous forme de chaîne avec un séparateur "," ou autre puis les "spliter" pour récupérer un tableau function split(text, sep) local sep, fields = sep or ":", {} local pattern = string.format("([^%s]+)", sep) text:gsub(pattern, function(c) fields[#fields+1] = c end) return fields end local mon_tableau = "1,2,3,4,5,60" local devices = split(mon_tableau, ",") fibaro:debug(devices[2]) 1
Domotique-Home Posté(e) le 22 mai 2014 Auteur Signaler Posté(e) le 22 mai 2014 Merci @Steven justement j'utilise déjà le split mais je voulais savoir si il y avais un moyen plus cour
Domotique-Home Posté(e) le 22 mai 2014 Auteur Signaler Posté(e) le 22 mai 2014 Par contre je trouve ta fonction mieux que la mienne je vais la reprendre, merci 1
Steven Posté(e) le 6 juin 2014 Signaler Posté(e) le 6 juin 2014 En fin de compte ... il y a plus simple json est notre ami local tableau = {1,2,3,4,5} -- pour stocker fibaro:setGlobal("mon_tableau", json.encode(tableau)) fibaro:sleep(2000) -- pour récupérer local mon_tableau = fibaro:getGlobal("mon_tableau"); local devices = json.decode(mon_tableau); fibaro:debug(devices[4]); 2
Domotique-Home Posté(e) le 6 juin 2014 Auteur Signaler Posté(e) le 6 juin 2014 oui, excellent je n'ai pas pensé a json merci
BenjyNet Posté(e) le 7 novembre 2015 Signaler Posté(e) le 7 novembre 2015 Je déterre le sujet, il n'y a toujours pas plus simple pour stocker un tableau en variable globale ?
Domotique-Home Posté(e) le 7 novembre 2015 Auteur Signaler Posté(e) le 7 novembre 2015 Je trouve que json est la solution la plus simple
BenjyNet Posté(e) le 7 novembre 2015 Signaler Posté(e) le 7 novembre 2015 Bah si on avait un truc du genre ce serait encore plus simple ! local tableau = {0,1,2,3} fibaro:setGlobal("mon_tableau", tableau)
Berale64 Posté(e) le 7 novembre 2015 Signaler Posté(e) le 7 novembre 2015 Ben oui, mais ça marche pas. Tu peux faire "0,1,2,3" mais àtoi après de décortiquer la chose. Donc, au final, c'est plus compliqué !!!
BenjyNet Posté(e) le 7 novembre 2015 Signaler Posté(e) le 7 novembre 2015 J'ai fait comme plus haut avec le json mais bon c'est con, faudrait leur soumettre l'idée
Messages recommandés