Gambas France BETA


Pas de compte ? Incription

fonction Eval et porté des variables

1
AuteurMessages
hplus77#1 Posté le 4/4/2012 à 15:28:45
Bonjour a tous,

Je suis un nouvel utilisateur du langage Gambas et de ce forum.
J'utilise la fonction Eval pour evaluer des petits script crées par l'utilisateur.
Dans la variable "context" je crée bien les variables nécessaires à l’exécution de la formule.
D'autre part l'utilisateur utilise dans son script des fonctions implémentés dans le programme principal faisant appel à la fonction Eval.
Jusque là tout ce passe bien, enfin a peu près:
Dans le script, j'utilise des variables globales déclarées dans le programme principal. La modification de ces variables à l'air de se faire dans une instance propre à l'appel à la fonction Eval et n'impacte pas les variables globales du programme principal. Or c'est ce que je voudrais, comment faire pour modifier ces variables?
Question subsidiaire: toujours à cause de ce problème d'instance, on ne peut pas debuger (au debugger avec point d’arrêt etc) les fonctions appelés par Eval...
Merci pour votre aide
Hplus77

hplus77#2 Posté le 4/4/2012 à 15:42:33
Petit ajout:
La classe qui contient les variables globales en question est un module. Elle est donc sensé etre unique...

J'essaye malgré tout de rajouter l'attribut static à ma variable, mais cela ne compile pas...

hplus77
linuxos#3 Posté le 4/4/2012 à 19:53:09
Un peu de sel, de poivre et la crevette sera... Bonjour et bienvenue sur le site,

Il faudrait que l'on ait accès au code pour voir ce que tu déclares et comment pour t'aider.
Sinon moi je ne sait pas faire autrement.

Si quelqu'un d'autre a une idée.

Olivier
Lorsqu'on s'occupe d'informatique, il faut faire comme les canards... Paraître calme en surface et pédaler comme un forcené par en dessous.
Fly06#4 Posté le 18/4/2012 à 21:51:38
Bonsoir,

A priori (compte tenu de ma faible expérience de gambas), je dirais que la fonction Eval a été conçu de sorte qu'elle ne puisse pas interférer avec le contexte courant.

C'est certainement très efficace d'un point de vue "sécuritaire" mais à l'usage c'est assez contraignant.

Il semble (?) que sous la version 3, il soit possible d'utiliser le mot clé LET pour qu'une affectation réalisée dans le contexte d'un Eval impacte le contexte courant.

http://gambasdoc.org/help/lang/eval?fr&v3

A tester...
spheris#5 Posté le 19/4/2012 à 23:30:03
LA SOLUTION ,LA SIMPLICITE :

Dans l'idée et pour prendre une image :

question : comment puis-je monter ces escaliers ?

Reponse : en levant une jambe aprés l'autre.

La même question façon Hplus77 : Comment dans l'univers exacerbatoire de l'entité unitaire reclu à cet instant de l'outrecuidante suite de pavé bétonné lissé de sorte qu'on en trouva point d'autre comme ceci dans toutes la magréat de maisons voisines aux alentour pourrais-je me frayer un chemin ?

La même réponse façon Fly06 : Il semble qu'un corrélation ambigu erige l'être qui puisse se mouvoir dans une sérialisation mouvementeste au proratoire de la bougeote.

Pour résumer : Je n'ai rien compris à la question. Encore moins à la réponse.

Sans code, il est difficile de donner un solution.

;)
Fly06#6 Posté le 20/4/2012 à 12:52:30
La même réponse façon Fly06 : Il semble qu'un corrélation ambigu erige l'être qui puisse se mouvoir dans une sérialisation mouvementeste au proratoire de la bougeote.


@spheris:

As-tu pris le temps de regarder le lien vers la doc Gambas dans mon post précédent ?
spheris#7 Posté le 20/4/2012 à 16:37:20
non garo pas eu le temps.
Mais ca y est j'ai maintenant compris...
;)
1