µLua DS - Forum officiel | Official forum Index du Forum

µLua DS - Forum officiel | Official forum
Le bon endroit pour en savoir plus sur MicroLua et pour parler de vos projets ! | The right place to learn more about MicroLua and talk about your projects !

 FAQFAQ   RechercherRechercher   MembresMembres   GroupesGroupes   S’enregistrerS’enregistrer   ProfilProfil   Se connecter pour vérifier ses messages privésSe connecter pour vérifier ses messages privés   ConnexionConnexion 

Convertir fonction en string ?
Aller à la page: 1, 2, 3  >
 
Poster un nouveau sujet   Répondre au sujet    µLua DS - Forum officiel | Official forum Index du Forum -> Section française -> Demande d'aide
Sujet précédent :: Sujet suivant  
Auteur Message
megagugus14


Hors ligne

Inscrit le: 03 Aoû 2012
Messages: 168

MessagePosté le: Ven 12 Avr 2013 - 19:16    Sujet du message: Convertir fonction en string ? Répondre en citant

Salut...

Alors, d'habitude je trouve toutes les fonctions dans la doc de lua, mais là je bloque...

Donc j'ai un tableau avec des fonctions (représentant des fonctions à exécuter quand on arrive sur une tile d'une map). De ce style :
 
Code:
 tab = {{function() end, function() end}}


Seulement le problème c'est que là je suis en train de faire un éditeur d'événement sur PC, mais je bloque sur un truc : comment faire pour pouvoir convertir ces fonction en string ( "function()  end" ) ?

Parce qu'avec tostring(), cela me renvoie "function 000000"...

Merci d'avance.
_________________
Programmeur à 11 ans... Quoi, t'as un problème ?


Revenir en haut
MSN
Publicité






MessagePosté le: Ven 12 Avr 2013 - 19:16    Sujet du message: Publicité

PublicitéSupprimer les publicités ?
Revenir en haut
Reylak
Administrateur

Hors ligne

Inscrit le: 24 Nov 2008
Messages: 2 838
Localisation: Toulouse

MessagePosté le: Sam 13 Avr 2013 - 09:54    Sujet du message: Convertir fonction en string ? Répondre en citant

Concrètement tu veux récupérer le code de la fonction sous forme de string ?

C'est étrange que ça ne marche pas vu que d'après la doc ça accepte n'importe quel type d'argument...

En idée un peu bourrine, tu peux essayer d'ouvrir le fichier comme un fichier texte normal et retrouver le code de la fonction comme ça.
_________________


Plein d'infos sur le SourceForge !


Revenir en haut
Visiter le site web du posteur MSN Skype
megagugus14


Hors ligne

Inscrit le: 03 Aoû 2012
Messages: 168

MessagePosté le: Sam 13 Avr 2013 - 12:26    Sujet du message: Convertir fonction en string ? Répondre en citant

La dernière hypothèse de marchera pas puisque à l'origine tab ne contient que nil et que c'est l'utilisateur qui doit la modifier.

Et oui, le code de la fonction. Voilà ce que ça fait avec tostring (sur une fonction toute simple avec un print()) :


 
Code:
 function: 00889428


_________________
Programmeur à 11 ans... Quoi, t'as un problème ?


Revenir en haut
MSN
geeker


Hors ligne

Inscrit le: 23 Déc 2012
Messages: 363

MessagePosté le: Sam 13 Avr 2013 - 12:47    Sujet du message: Convertir fonction en string ? Répondre en citant

Tu fais:
Code:

code = string.dump(fonctionSansLesParenthèses)


et voilà ! Il suffit juste d'aller voir dans la doc de Lua 5.1 Shocked

Si tu veux récupérer un valeur:
Code:

val1 = tafonction()
val2 = tafonction()
tab = {val1, val2}

_________________
Beta-testeur de l'extrème
Tox: FFBDC8B34DC3CDE51F8F1CB0A628147DE740ACD1D44682EB5492A681F6541E32E8D8BB6052B3
CtrµLua: ctrulua.github.io
Des p'tits true, des p'tits true, toujours des p'tits true ...


Revenir en haut
Visiter le site web du posteur
megagugus14


Hors ligne

Inscrit le: 03 Aoû 2012
Messages: 168

MessagePosté le: Sam 13 Avr 2013 - 12:56    Sujet du message: Convertir fonction en string ? Répondre en citant

Euh... Ca retourne une représentation binaire de la fonction. Autrement dit un truc bizarre dans un hexa... Bizarre. Pas un string en tout cas.



_________________
Programmeur à 11 ans... Quoi, t'as un problème ?


Revenir en haut
MSN
geeker


Hors ligne

Inscrit le: 23 Déc 2012
Messages: 363

MessagePosté le: Sam 13 Avr 2013 - 17:10    Sujet du message: Convertir fonction en string ? Répondre en citant

Ben, puisque c'est du binaire, tu prend la libbin (de µLua) et tu convertis le binaire en string Wink Moi perso avec la fonction:
Code:

function f()
 print("Hello world!")
end

J'obtiens:
Code:

←LuaQ

_________________
Beta-testeur de l'extrème
Tox: FFBDC8B34DC3CDE51F8F1CB0A628147DE740ACD1D44682EB5492A681F6541E32E8D8BB6052B3
CtrµLua: ctrulua.github.io
Des p'tits true, des p'tits true, toujours des p'tits true ...


Revenir en haut
Visiter le site web du posteur
megagugus14


Hors ligne

Inscrit le: 03 Aoû 2012
Messages: 168

MessagePosté le: Sam 13 Avr 2013 - 19:35    Sujet du message: Convertir fonction en string ? Répondre en citant

Et je la trouve où cette lib ?
_________________
Programmeur à 11 ans... Quoi, t'as un problème ?


Revenir en haut
MSN
geeker


Hors ligne

Inscrit le: 23 Déc 2012
Messages: 363

MessagePosté le: Sam 13 Avr 2013 - 19:46    Sujet du message: Convertir fonction en string ? Répondre en citant

Ben ... Tu vas dans la section "Libs" du forum et tu cherche un peu !
_________________
Beta-testeur de l'extrème
Tox: FFBDC8B34DC3CDE51F8F1CB0A628147DE740ACD1D44682EB5492A681F6541E32E8D8BB6052B3
CtrµLua: ctrulua.github.io
Des p'tits true, des p'tits true, toujours des p'tits true ...


Revenir en haut
Visiter le site web du posteur
megagugus14


Hors ligne

Inscrit le: 03 Aoû 2012
Messages: 168

MessagePosté le: Sam 13 Avr 2013 - 20:11    Sujet du message: Convertir fonction en string ? Répondre en citant

Il n'y a de conversions que vers des entiers...
_________________
Programmeur à 11 ans... Quoi, t'as un problème ?


Revenir en haut
MSN
Papymouge
Modérateur

Hors ligne

Inscrit le: 10 Mai 2009
Messages: 693
Localisation: Vittel (88)

MessagePosté le: Sam 13 Avr 2013 - 23:55    Sujet du message: Convertir fonction en string ? Répondre en citant

Bon pour ma part, quand je trouve pas de réponse dans un sens, je cherche dans l`autre sens.
Et il se trouve qu`en Lua, on peut transformer un string en fonction.


Donc imaginons une fonction du style : mabellefonnction()
On la transforme en string : "mabellefonction"


Jusque là c`es pas dur, mais la suite ne s`invente pas. Pour executer cette fonction, il faut faire : 


assert(loadstring("mabellefonction"))()
_________________
La page de mes projets
L'ancienne page de mes projets


Revenir en haut
geeker


Hors ligne

Inscrit le: 23 Déc 2012
Messages: 363

MessagePosté le: Dim 14 Avr 2013 - 10:19    Sujet du message: Convertir fonction en string ? Répondre en citant

Je l'utilise dans ma calculette ! Ça sert surtout pour calculer, en faisant un truc style:
Code:

string = "6*7"
result = assert(loadstring(string))()
print(result)

Mais là, on cherche à faire l'inverse ...
_________________
Beta-testeur de l'extrème
Tox: FFBDC8B34DC3CDE51F8F1CB0A628147DE740ACD1D44682EB5492A681F6541E32E8D8BB6052B3
CtrµLua: ctrulua.github.io
Des p'tits true, des p'tits true, toujours des p'tits true ...


Revenir en haut
Visiter le site web du posteur
megagugus14


Hors ligne

Inscrit le: 03 Aoû 2012
Messages: 168

MessagePosté le: Dim 14 Avr 2013 - 20:02    Sujet du message: Convertir fonction en string ? Répondre en citant

Et c'est justement ce que je fais dans le sens inverse, quand je veux enregistrer ce qu'entre l'utilisateur.
_________________
Programmeur à 11 ans... Quoi, t'as un problème ?


Revenir en haut
MSN
geeker


Hors ligne

Inscrit le: 23 Déc 2012
Messages: 363

MessagePosté le: Mar 16 Avr 2013 - 16:27    Sujet du message: Convertir fonction en string ? Répondre en citant

Pour sauvegarder une variable, y'a pas besoin de fonction  Neutral Tu veux faire quoi exxactement ?
_________________
Beta-testeur de l'extrème
Tox: FFBDC8B34DC3CDE51F8F1CB0A628147DE740ACD1D44682EB5492A681F6541E32E8D8BB6052B3
CtrµLua: ctrulua.github.io
Des p'tits true, des p'tits true, toujours des p'tits true ...


Revenir en haut
Visiter le site web du posteur
megagugus14


Hors ligne

Inscrit le: 03 Aoû 2012
Messages: 168

MessagePosté le: Mar 16 Avr 2013 - 17:34    Sujet du message: Convertir fonction en string ? Répondre en citant

Sauf que c'est pas une variable que j'enregistre.

Quand l'utilisateur sélectionne une tile, alors il y a une textbox et quand il entre une fonction, je convertis le texte (string) avec loadstring() et je l'enregistre dans une table. Seulement, si je veux afficher une fonction dans le textbox, quand l'utilisateur sélectionne une autre tile, cela devient impossible.
_________________
Programmeur à 11 ans... Quoi, t'as un problème ?


Revenir en haut
MSN
geeker


Hors ligne

Inscrit le: 23 Déc 2012
Messages: 363

MessagePosté le: Mar 16 Avr 2013 - 17:49    Sujet du message: Convertir fonction en string ? Répondre en citant

"Il entre une fonction" ... Si tu veux sauvegarder un texte dans une table c'est possible ... Pourquoi tu veux le convertir en fonction ? Pour le crypter ? Pour stocker cette valeur et faire:
Code:

f = loadstring("return "..string)

Ou tout simplement pour faire un tableau de fonctions, style "screen.[...]()" ? Si c'est pour ça, tu peut aussi faire des tableaux de strings !
Tu peux m'envoyer ton code s'il te plais ? Que je vois à quoi ça ressemble ton histoire de "sélection de fonction" .
_________________
Beta-testeur de l'extrème
Tox: FFBDC8B34DC3CDE51F8F1CB0A628147DE740ACD1D44682EB5492A681F6541E32E8D8BB6052B3
CtrµLua: ctrulua.github.io
Des p'tits true, des p'tits true, toujours des p'tits true ...


Revenir en haut
Visiter le site web du posteur
Contenu Sponsorisé






MessagePosté le: Aujourd’hui à 08:52    Sujet du message: Convertir fonction en string ?

Revenir en haut
Montrer les messages depuis:   
Poster un nouveau sujet   Répondre au sujet    µLua DS - Forum officiel | Official forum Index du Forum -> Section française -> Demande d'aide Toutes les heures sont au format GMT + 1 Heure
Aller à la page: 1, 2, 3  >
Page 1 sur 3

 
Sauter vers:  

Index | Creer un forum | Forum gratuit d’entraide | Annuaire des forums gratuits | Signaler une violation | Conditions générales d'utilisation
Powered by phpBB © 2001, 2005 phpBB Group
Traduction par : phpBB-fr.com