Posté le 05/08/2014 09:20
Planète Casio v4.3 © créé par Neuronix et Muelsaco 2004 - 2025 | Il y a 184 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
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
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
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 ?