mprinfo Posté(e) le 12 février 2015 Signaler Posté(e) le 12 février 2015 Je voudrais crée un tableau plusieurs entré en lua Je saurai le faire en BASIC mais si quelqu'un pourrai me traduire cela en lua ex : ID = 0 For I=0 to 10 ID(i)=ID(i)+1 I=I+1 Next resultat ID1=1, ID2=2 ID3=3 etc... se voudrais savoir si il est aussi possible de faire une truc du genre ID(I,J) 2 questions si je rentre dans une variable Local ID = 1, 10, 25 ,40 comment fait on pour récuperer cela sous cette forme ID1 = 1 ID2 = 10 ID3 = 25 ID4 = 40 Merci d'avance pour votre aide
Berale64 Posté(e) le 12 février 2015 Signaler Posté(e) le 12 février 2015 Local ID = {1, 10, 25 ,40}; ID[2] donne 10 ID[4] donne 40 1
mprinfo Posté(e) le 12 février 2015 Auteur Signaler Posté(e) le 12 février 2015 ok merci par contre si je veux remplacer le chiffre [2] par une variable je mets ? pour la boucle je peux utilisé for to Next ou je dois utilisé un do while ?
Berale64 Posté(e) le 12 février 2015 Signaler Posté(e) le 12 février 2015 for i = 1,4 do ID end il y a de très bon tuto sur le net. https://www.google.fr/search?q=lua&ie=utf-8&oe=utf-8&gws_rd=cr&ei=a-LcVPuiDMatUbuCgvAD
mprinfo Posté(e) le 12 février 2015 Auteur Signaler Posté(e) le 12 février 2015 merci ça fait un moment que j'ai pas fais de programmation j'ai arreté a dbase 4 j'arrive a comprendre en parti un script en lua mais al syntaxe ??? je viens de trouver aussi cela. http://www.ozone3d.net/tutorials/lua_coding.php#intro et avec ton exemple ça roule Merci beaucoup je suis entrain de faire une télécommande pour mes volets je les regroupes par zone et je n' aime pas avoir pleins de ligne qui sont identique avec seulement un id qui change de plus si je ré inclus un module il faut tout modifié je préfére avoir un variable globale avec mes id c'est plus souple
mprinfo Posté(e) le 12 février 2015 Auteur Signaler Posté(e) le 12 février 2015 je viens de tester cela mais ca ne fonctionne pas local Id = {5, 7, 9}; local IdValue = {0, 0, 0}; for j = 1,3 do local IdValue[j] = fibaro:getValue(Id[j], 'value' ) end
mprinfo Posté(e) le 13 février 2015 Auteur Signaler Posté(e) le 13 février 2015 j'ai une erreur a ce niveau local IdValue[j] = fibaro:getValue(Id[j], 'value' ) je n'arrive pas a transférer la valeur de ID[j] dans IdValue[j]
Lionel57 Posté(e) le 13 février 2015 Signaler Posté(e) le 13 février 2015 Il faut enlever le "local" dans ta boucle, la variable a déjàété déclarée
mprinfo Posté(e) le 13 février 2015 Auteur Signaler Posté(e) le 13 février 2015 Voici le code enfin fonctionnel si ca peut servir a quelqu'un local V_Status = 99 -- Valeur 0=Fermer - 99 = Ouvert local V_Id = {5, 7, 9}; -- Id modules Volets local N_Modules = 3 -- Nombres de modules local V_IdValue = {}; -- Initialisation de la table fibaro:debug("Nombres Modules = " ..N_Modules) for i = 1,N_Modules do fibaro:call(V_Id[i], "setValue", V_Status ); -- Commande Module V_IdValue[i] = fibaro:getValue(V_Id[i], 'value' ); -- recuperation de la valeur du module fibaro:call(fibaro:getSelfId(), "setProperty", "ui.lblRDC.value", V_IdValue[i] .." %") fibaro:debug( V_IdValue[i] .." " .. i ) end 1
Berale64 Posté(e) le 13 février 2015 Signaler Posté(e) le 13 février 2015 Tu n'as pas besoin de "local N_Modules = 3" tu peux écrire #V_Id qui représente le nombre d'éléments de la table V_Id. Comme ça, si tu rajoute des éléments, ton code est toujours valable. 1
mprinfo Posté(e) le 13 février 2015 Auteur Signaler Posté(e) le 13 février 2015 Merci berale24 c'est ce que je voulais faire dans ma prochaine version mais je ne connaissais pas la commande Je vais aussi crée des variables globale pour grouper les id de mes volets par zone ca par contre je sais faire Merci pour votre aide
mprinfo Posté(e) le 14 février 2015 Auteur Signaler Posté(e) le 14 février 2015 petite question j'ai été obliger de faire une variable prédéfinie car la variable globale ne fonctionne pas pour mettre plusieurs id j'ai fais comme cela Zone1=5,7,9 Zone2=19,23,25 Zone3=29,27,17 -- traitement de la varialble globale Merci Steven 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 = fibaro:getGlobal('V_Zone1'); local V_Id = split(mon_tableau, ",") je récupere les id via le code que steven a fais je voudrais savoir si il n'est pas possible de faire une seule variable prédéfinie Zone et d'y mettre plusieurs parametre je ne sais pas comment récupérer le paramètre dont j'ai besoin variable prédéfinie = zone paramètre 1 valeur=5,7,9 paramètre 2 valeur=19,23,25 paramètre 3 valeur=29,27,17
trainkill666 Posté(e) le 14 février 2015 Signaler Posté(e) le 14 février 2015 Cette méthode à l'air de fonctionner : local zone ={} local nbparametre, id1 = 1,1 zone["parametre" .. nbparametre.. ":" .. id1] = 5 fibaro:debug(zone["parametre1:1"]) à toi de créer les boucles pour nbparametre et id1 afin de remplir ou lire la table. 2ème méthode : créer un tableau à plusieurs dimensions : http://wxlua.free.fr/Tutoriel_Lua/Tuto/Tables/tables3.php
mprinfo Posté(e) le 14 février 2015 Auteur Signaler Posté(e) le 14 février 2015 je me suis mal exprimé J'arrive a récuperer les valeurs quand il n'y a qu'une ligne mais comment faire pour récupérer les valeurs de la ligne de mon choix merci pour ta réponse et le lien que tu m'as donné
mprinfo Posté(e) le 22 février 2015 Auteur Signaler Posté(e) le 22 février 2015 Quelqu'un peu m'aider ????
Messages recommandés