Domotique-Home Posté(e) le 22 mai 2014 Signaler Partager 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
Steven Posté(e) le 22 mai 2014 Signaler Partager 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
Domotique-Home Posté(e) le 22 mai 2014 Auteur Signaler Partager 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
Domotique-Home Posté(e) le 22 mai 2014 Auteur Signaler Partager Posté(e) le 22 mai 2014 Par contre je trouve ta fonction mieux que la mienne je vais la reprendre, merci 1 Lien vers le commentaire Partager sur d’autres sites More sharing options...
Steven Posté(e) le 6 juin 2014 Signaler Partager 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
Domotique-Home Posté(e) le 6 juin 2014 Auteur Signaler Partager Posté(e) le 6 juin 2014 oui, excellent je n'ai pas pensé a json merci Lien vers le commentaire Partager sur d’autres sites More sharing options...
BenjyNet Posté(e) le 7 novembre 2015 Signaler Partager 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 ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
Domotique-Home Posté(e) le 7 novembre 2015 Auteur Signaler Partager Posté(e) le 7 novembre 2015 Je trouve que json est la solution la plus simple Lien vers le commentaire Partager sur d’autres sites More sharing options...
BenjyNet Posté(e) le 7 novembre 2015 Signaler Partager 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) Lien vers le commentaire Partager sur d’autres sites More sharing options...
Berale64 Posté(e) le 7 novembre 2015 Signaler Partager 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é !!! Lien vers le commentaire Partager sur d’autres sites More sharing options...
BenjyNet Posté(e) le 7 novembre 2015 Signaler Partager 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés