Posté le 05/08/2014 09:20
Planète Casio v4.3 © créé par Neuronix et Muelsaco 2004 - 2024 | Il y a 230 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements
Planète Casio est un site communautaire non affilié à Casio. Toute reproduction de Planète Casio, même partielle, est interdite.
Les programmes et autres publications présentes sur Planète Casio restent la propriété de leurs auteurs et peuvent être soumis à des licences ou copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd
Citer : Posté le 05/08/2014 10:39 | #
Alors :
Exemple 1: Je veux charger une librairie et je ne souhaite pas la décharger.
f,err = misc.modload ( nom)
if f == nil -- si il y a erreur, f = nil
then
print(err) -- err contient le message d'erreur
end -- affiche l'erreur lors du chargement du fichier
f() -- execute le fichier (et donc défini les fonctions et les variables globales qui deviennent accessibles)
Remarque: f correspond en fait à une fonction qui contien tout le code du module. L'executer
revient à lancer le programme contenu dans le module.
Exemple 2: Je veux charger un module, mais je n'ai pas confiance dans le contenu: j'aimerais qu'il
ne puisse pas voir les variables globales que j'ai défini et qu'il ne puisse pas les modifier.
OU : Je veux charger le module et pouvoir le supprimer de la mémoire entièrement ensuite.
f,err = misc.modload ( nom )
if f == nil -- si il y a erreur, f = nil
then
print(err) -- err contient le message d'erreur
end -- affiche l'erreur lors du chargement du fichier
tab = {base = base ; misc = misc ; nbdraw = nbdraw ; graydraw = graydraw}
base.setfenv(f, tab) – tab est maintenant l'environnement de f (contient toutes les variables
globales)
f()
Toutes les variables globales de f seront définies dans tab. ( on y accède avec ' tab. ' )
Donc, ta manière de charger la lib n'est pas bonne (il manque un f() pour que ça fonctionne )
Coïncidence ? Je ne pense pas.
Citer : Posté le 05/08/2014 12:10 | #
donc en gros si je ne veux pas avoir d'erreur je fais :
f()
Mais comment j’exécute une seule fonction à l'intérieur de f() ?
je met f(cos (0.1)) ?
Ajouté le 05/08/2014 à 13:49 :
J'ai essayé :
cos=f(cos(0.1)) -- je ne suis pas sûr et ça me met une erreur
misc.print(cos)
misc.wait(100)
Je pige absolument rien
Citer : Posté le 05/08/2014 14:05 | #
alors quand tu fait f(), si j'ai bien compris, il exécute tout le fichier du module. Il définit donc les fonctions du module il te suffit donc, après avoir mit f() d'appeller ta fonction (ici cos(0.1) ) comme si tu l'avais définie dans ton fichier.
Coïncidence ? Je ne pense pas.
Citer : Posté le 05/08/2014 14:06 | #
ah d'accord j'essai
EDIT:
f()
misc.print(cos(0.1)
misc.wait(100)
ça me met une erreur
Citer : Posté le 05/08/2014 15:02 | #
hum... ça ne serait pas par hasard parce que tu as oublié une parenthèse fermante à la troisième ligne ?
Plus sérieusement, à quelle ligne ça plante ?
Et tu ferais mieux de mettre le code de vebveb qui permet de prévenir d'éventuelles erreurs dans l'ouverture...
Coïncidence ? Je ne pense pas.
Citer : Posté le 05/08/2014 15:06 | #
ouai c'est une erreur d'écriture mais ça plante à f()
Citer : Posté le 05/08/2014 15:08 | #
Et ça met quoi comme erreur ?
Coïncidence ? Je ne pense pas.
Citer : Posté le 05/08/2014 15:12 | #
attemp to call global "f" (a nil value)
Mais dans le dossier du Lua FX, un exemple utilise que les modules donc je vais m'en inspirer
Citer : Posté le 05/08/2014 15:14 | #
Donc f() vaut nil !
et
-- si il y a erreur, f = nil
Coïncidence ? Je ne pense pas.
Citer : Posté le 05/08/2014 15:14 | #
Pour charger le module math
local function load_math()
if math_is_loaded then return
else
local math_module, err;
math_module, err = modload ( "math" )
if math_module == nil -- si il y a erreur
then
error("we need the math module. Error message is:\n\r"..err,0) -- err contient le message d'erreur
end
math_module() -- define global functions pow, sin, cos, tan, atan, asin, acos
math_is_loaded = true
end
end
Ajouté le 05/08/2014 à 15:14 :
ouai je vais prendre le truc à Veb
Ajouté le 05/08/2014 à 15:15 :
Je vais compléter mon tuto là dessus, je pense que cela sera plus clair pour les autres
Citer : Posté le 05/08/2014 18:06 | #
Je tiens quand même à preciser que c'est pas vraiment l'adaptation de la lib de D_S
Citer : Posté le 06/08/2014 09:35 | #
Les fonctions sont bien mais il y a quelques erreurs dans la lib, Cartix mais je t’enverrai un MP
EDIT : @Cartix : J'ai modifié le début du sujet
Citer : Posté le 06/08/2014 16:40 | #
Ok, j'attend ton mp.
Et c'est pas non plus l'adaptation de certaine fonction, je n'ai regardé TouchLib qu'àprès avoir écrit mes fonctions (mais tu peux laisser le topic comme ça, je dis ça juste pour que tout soit clair)
Citer : Posté le 09/08/2014 11:28 | #
Je pensais que fournir un exemple d'utilisation était mieux qu'une documentation très longue.
Visiblement il faudra que je fasse les deux la prochaine fois
Citer : Posté le 13/08/2014 17:06 | #
Faut il que je crée un topic pour officialiser la lib ?