Bonjour
Il m'arrive de demander à un module d'en appeler un autre. Mais une
fois que le deuxième a accompli sa tâche, il ne renvoie pas la main .
J'ai une solution, mais elle est compliquée. Comment faire simplement ?
Bonjour
Il m'arrive de demander à un module d'en appeler un autre. Mais une
fois que le deuxième a accompli sa tâche, il ne renvoie pas la main .
J'ai une solution, mais elle est compliquée. Comment faire simplement ?
Bonjour
Il m'arrive de demander à un module d'en appeler un autre. Mais une
fois que le deuxième a accompli sa tâche, il ne renvoie pas la main .
J'ai une solution, mais elle est compliquée. Comment faire simplement ?
> Je ne comprends pas le problème. Qu'entends-tu par "appeler un module"?
En général, on appelle une fonction d'un module, pas le module lui-m ême.
Et le retour d'un fonction est automatique (sauf si la fonction contient
une boucle infinie).
Peux-tu donner un exemple de code?
Vincent Guichard
> Je ne comprends pas le problème. Qu'entends-tu par "appeler un module"?
En général, on appelle une fonction d'un module, pas le module lui-m ême.
Et le retour d'un fonction est automatique (sauf si la fonction contient
une boucle infinie).
Peux-tu donner un exemple de code?
Vincent Guichard
> Je ne comprends pas le problème. Qu'entends-tu par "appeler un module"?
En général, on appelle une fonction d'un module, pas le module lui-m ême.
Et le retour d'un fonction est automatique (sauf si la fonction contient
une boucle infinie).
Peux-tu donner un exemple de code?
Vincent Guichard
Je ne comprends pas le problème. Qu'entends-tu par "appeler un module"?
En général, on appelle une fonction d'un module, pas le module lui-même.
Et le retour d'un fonction est automatique (sauf si la fonction contient
une boucle infinie).
Peux-tu donner un exemple de code?
Vincent Guichard
Je ne comprends pas le problème. Qu'entends-tu par "appeler un module"?
En général, on appelle une fonction d'un module, pas le module lui-même.
Et le retour d'un fonction est automatique (sauf si la fonction contient
une boucle infinie).
Peux-tu donner un exemple de code?
Vincent Guichard
Je ne comprends pas le problème. Qu'entends-tu par "appeler un module"?
En général, on appelle une fonction d'un module, pas le module lui-même.
Et le retour d'un fonction est automatique (sauf si la fonction contient
une boucle infinie).
Peux-tu donner un exemple de code?
Vincent Guichard
Salut fraction
Je pense comme Vincent que tu devrais nous faire quand une petite démo de
tes appels
tu peux shunter la partie appel de procédures dans le même module.
mais nous faire voir quand même comment c'est construit..
Car si tu appelles ta procédure à l'intérieur d'une procédure "ma îtresse" il
n'y a aucune raison que cela ne revienne pas.
As tu essayé le mode pas à pas. c'est sans doute fastidieux, mais tr ès
intéressant pour debugger.
essaie en simplifiant de nous faire voir un bout de ta démarche.
Driss
Salut fraction
Je pense comme Vincent que tu devrais nous faire quand une petite démo de
tes appels
tu peux shunter la partie appel de procédures dans le même module.
mais nous faire voir quand même comment c'est construit..
Car si tu appelles ta procédure à l'intérieur d'une procédure "ma îtresse" il
n'y a aucune raison que cela ne revienne pas.
As tu essayé le mode pas à pas. c'est sans doute fastidieux, mais tr ès
intéressant pour debugger.
essaie en simplifiant de nous faire voir un bout de ta démarche.
Driss
Salut fraction
Je pense comme Vincent que tu devrais nous faire quand une petite démo de
tes appels
tu peux shunter la partie appel de procédures dans le même module.
mais nous faire voir quand même comment c'est construit..
Car si tu appelles ta procédure à l'intérieur d'une procédure "ma îtresse" il
n'y a aucune raison que cela ne revienne pas.
As tu essayé le mode pas à pas. c'est sans doute fastidieux, mais tr ès
intéressant pour debugger.
essaie en simplifiant de nous faire voir un bout de ta démarche.
Driss
Salut fraction
Je pense comme Vincent que tu devrais nous faire quand une petite démo de
tes appels
tu peux shunter la partie appel de procédures dans le même module.
mais nous faire voir quand même comment c'est construit..
Car si tu appelles ta procédure à l'intérieur d'une procédure "maîtresse"
il
n'y a aucune raison que cela ne revienne pas.
As tu essayé le mode pas à pas. c'est sans doute fastidieux, mais très
intéressant pour debugger.
essaie en simplifiant de nous faire voir un bout de ta démarche.
Driss
Salut fraction
Je pense comme Vincent que tu devrais nous faire quand une petite démo de
tes appels
tu peux shunter la partie appel de procédures dans le même module.
mais nous faire voir quand même comment c'est construit..
Car si tu appelles ta procédure à l'intérieur d'une procédure "maîtresse"
il
n'y a aucune raison que cela ne revienne pas.
As tu essayé le mode pas à pas. c'est sans doute fastidieux, mais très
intéressant pour debugger.
essaie en simplifiant de nous faire voir un bout de ta démarche.
Driss
Salut fraction
Je pense comme Vincent que tu devrais nous faire quand une petite démo de
tes appels
tu peux shunter la partie appel de procédures dans le même module.
mais nous faire voir quand même comment c'est construit..
Car si tu appelles ta procédure à l'intérieur d'une procédure "maîtresse"
il
n'y a aucune raison que cela ne revienne pas.
As tu essayé le mode pas à pas. c'est sans doute fastidieux, mais très
intéressant pour debugger.
essaie en simplifiant de nous faire voir un bout de ta démarche.
Driss
Salut Fraction
OK pour cela.
Regarde quand même tout de suite si tu peux comiler ton projet.
Cela serait dommage que tu avance de plus en plus dans ta parade et que t u
sois bloqué à la compilation.
Driss
Salut Fraction
OK pour cela.
Regarde quand même tout de suite si tu peux comiler ton projet.
Cela serait dommage que tu avance de plus en plus dans ta parade et que t u
sois bloqué à la compilation.
Driss
Salut Fraction
OK pour cela.
Regarde quand même tout de suite si tu peux comiler ton projet.
Cela serait dommage que tu avance de plus en plus dans ta parade et que t u
sois bloqué à la compilation.
Driss
Je ne comprends pas le problème. Qu'entends-tu par "appeler un modul e"?
En général, on appelle une fonction d'un module, pas le module lui -même.
Et le retour d'un fonction est automatique (sauf si la fonction contie nt
une boucle infinie).
Peux-tu donner un exemple de code?
Vincent Guichard
Oui, tu as raison. J'appelle une procédure d'un module, elle-même
appelle d'autres procédures de ce même module. Mais une fois cette
exécution terminée, elle ne renvoie pas la main. Le code est trop
compliqué pour l'écrire ici.
J'ai peut-être fait une erreur.
Ça m'arrive rarement. Et j'ai trouvé la parade en déclarant une
variable publique et en demandant à la procédure fille de revenir e n
arrière.
Je ne comprends pas le problème. Qu'entends-tu par "appeler un modul e"?
En général, on appelle une fonction d'un module, pas le module lui -même.
Et le retour d'un fonction est automatique (sauf si la fonction contie nt
une boucle infinie).
Peux-tu donner un exemple de code?
Vincent Guichard
Oui, tu as raison. J'appelle une procédure d'un module, elle-même
appelle d'autres procédures de ce même module. Mais une fois cette
exécution terminée, elle ne renvoie pas la main. Le code est trop
compliqué pour l'écrire ici.
J'ai peut-être fait une erreur.
Ça m'arrive rarement. Et j'ai trouvé la parade en déclarant une
variable publique et en demandant à la procédure fille de revenir e n
arrière.
Je ne comprends pas le problème. Qu'entends-tu par "appeler un modul e"?
En général, on appelle une fonction d'un module, pas le module lui -même.
Et le retour d'un fonction est automatique (sauf si la fonction contie nt
une boucle infinie).
Peux-tu donner un exemple de code?
Vincent Guichard
Oui, tu as raison. J'appelle une procédure d'un module, elle-même
appelle d'autres procédures de ce même module. Mais une fois cette
exécution terminée, elle ne renvoie pas la main. Le code est trop
compliqué pour l'écrire ici.
J'ai peut-être fait une erreur.
Ça m'arrive rarement. Et j'ai trouvé la parade en déclarant une
variable publique et en demandant à la procédure fille de revenir e n
arrière.
Le 23/12/2009 15:35, fraction a écrit :
>> Je ne comprends pas le problème. Qu'entends-tu par "appeler un modul e"?
>> En général, on appelle une fonction d'un module, pas le module lui -même.
>> Et le retour d'un fonction est automatique (sauf si la fonction contie nt
>> une boucle infinie).
>> Peux-tu donner un exemple de code?
>> Vincent Guichard
> Oui, tu as raison. J'appelle une procédure d'un module, elle-même
> appelle d'autres procédures de ce même module. Mais une fois cette
> exécution terminée, elle ne renvoie pas la main. Le code est trop
> compliqué pour l'écrire ici.
> J'ai peut-être fait une erreur.
> Ça m'arrive rarement. Et j'ai trouvé la parade en déclarant une
> variable publique et en demandant à la procédure fille de revenir e n
> arrière.
Comment donc peux-tu demander à la procédure fille de revenir en
arrière? Et comment une variable publique peut-elle bien corriger un
problème tel que tu le décris? Je subodore un grave problème de
conception de l'application. Faute du code complet, peut être
pourrais-tu indiquer une pile des appels? Et donner la "parade" que tu
as trouvé?
Voici les choses telles que je les comprends, avec les informations
limitées que j'ai. Tu appeles une fonction (ou une procédure) qui se
trouves dans ton module. Cette fonction ne retourne jamais: Pourquoi?
En général, c'est qu'il y a une boucle infinie (par exemple, la
condition de fin de boucle ne se produit pas). Une des possibilités qui
me viennent à l'esprit est que tu travailles sur deux threads avec des
variables portant le même nom, et que tu t'attends en modifiant l'une à
voir l'autre se modifier.
Pour sortir d'une boucle tu n'as pas 36 possibilités:
+ la condition de sortie se produit (normal)
+ un appel Exit pour sortir proprement avant que la condition soit réal isée
+ un appel Goto vers un label en dehors de la boucle (beurk, mais
parfois utile si on sait ce qu'on fait)
Ce dont j'ai peur, c'est que la parade que tu as trouvé consiste en
l'appel de la procédure maitresse, en utilisant la variable publique
pour savoir que tu reviens de la procédure du module. Et ca, c'est tr ès
dangereux, parce que ça veux dire que tu vas empiler les appels et fini r
par cracher l'appli, faute de mémoire.
Vincent Guichard
Le 23/12/2009 15:35, fraction a écrit :
>> Je ne comprends pas le problème. Qu'entends-tu par "appeler un modul e"?
>> En général, on appelle une fonction d'un module, pas le module lui -même.
>> Et le retour d'un fonction est automatique (sauf si la fonction contie nt
>> une boucle infinie).
>> Peux-tu donner un exemple de code?
>> Vincent Guichard
> Oui, tu as raison. J'appelle une procédure d'un module, elle-même
> appelle d'autres procédures de ce même module. Mais une fois cette
> exécution terminée, elle ne renvoie pas la main. Le code est trop
> compliqué pour l'écrire ici.
> J'ai peut-être fait une erreur.
> Ça m'arrive rarement. Et j'ai trouvé la parade en déclarant une
> variable publique et en demandant à la procédure fille de revenir e n
> arrière.
Comment donc peux-tu demander à la procédure fille de revenir en
arrière? Et comment une variable publique peut-elle bien corriger un
problème tel que tu le décris? Je subodore un grave problème de
conception de l'application. Faute du code complet, peut être
pourrais-tu indiquer une pile des appels? Et donner la "parade" que tu
as trouvé?
Voici les choses telles que je les comprends, avec les informations
limitées que j'ai. Tu appeles une fonction (ou une procédure) qui se
trouves dans ton module. Cette fonction ne retourne jamais: Pourquoi?
En général, c'est qu'il y a une boucle infinie (par exemple, la
condition de fin de boucle ne se produit pas). Une des possibilités qui
me viennent à l'esprit est que tu travailles sur deux threads avec des
variables portant le même nom, et que tu t'attends en modifiant l'une à
voir l'autre se modifier.
Pour sortir d'une boucle tu n'as pas 36 possibilités:
+ la condition de sortie se produit (normal)
+ un appel Exit pour sortir proprement avant que la condition soit réal isée
+ un appel Goto vers un label en dehors de la boucle (beurk, mais
parfois utile si on sait ce qu'on fait)
Ce dont j'ai peur, c'est que la parade que tu as trouvé consiste en
l'appel de la procédure maitresse, en utilisant la variable publique
pour savoir que tu reviens de la procédure du module. Et ca, c'est tr ès
dangereux, parce que ça veux dire que tu vas empiler les appels et fini r
par cracher l'appli, faute de mémoire.
Vincent Guichard
Le 23/12/2009 15:35, fraction a écrit :
>> Je ne comprends pas le problème. Qu'entends-tu par "appeler un modul e"?
>> En général, on appelle une fonction d'un module, pas le module lui -même.
>> Et le retour d'un fonction est automatique (sauf si la fonction contie nt
>> une boucle infinie).
>> Peux-tu donner un exemple de code?
>> Vincent Guichard
> Oui, tu as raison. J'appelle une procédure d'un module, elle-même
> appelle d'autres procédures de ce même module. Mais une fois cette
> exécution terminée, elle ne renvoie pas la main. Le code est trop
> compliqué pour l'écrire ici.
> J'ai peut-être fait une erreur.
> Ça m'arrive rarement. Et j'ai trouvé la parade en déclarant une
> variable publique et en demandant à la procédure fille de revenir e n
> arrière.
Comment donc peux-tu demander à la procédure fille de revenir en
arrière? Et comment une variable publique peut-elle bien corriger un
problème tel que tu le décris? Je subodore un grave problème de
conception de l'application. Faute du code complet, peut être
pourrais-tu indiquer une pile des appels? Et donner la "parade" que tu
as trouvé?
Voici les choses telles que je les comprends, avec les informations
limitées que j'ai. Tu appeles une fonction (ou une procédure) qui se
trouves dans ton module. Cette fonction ne retourne jamais: Pourquoi?
En général, c'est qu'il y a une boucle infinie (par exemple, la
condition de fin de boucle ne se produit pas). Une des possibilités qui
me viennent à l'esprit est que tu travailles sur deux threads avec des
variables portant le même nom, et que tu t'attends en modifiant l'une à
voir l'autre se modifier.
Pour sortir d'une boucle tu n'as pas 36 possibilités:
+ la condition de sortie se produit (normal)
+ un appel Exit pour sortir proprement avant que la condition soit réal isée
+ un appel Goto vers un label en dehors de la boucle (beurk, mais
parfois utile si on sait ce qu'on fait)
Ce dont j'ai peur, c'est que la parade que tu as trouvé consiste en
l'appel de la procédure maitresse, en utilisant la variable publique
pour savoir que tu reviens de la procédure du module. Et ca, c'est tr ès
dangereux, parce que ça veux dire que tu vas empiler les appels et fini r
par cracher l'appli, faute de mémoire.
Vincent Guichard
On 23 déc, 17:35, Vincent Guichard wrote:
> Le 23/12/2009 15:35, fraction a écrit :
> >> Je ne comprends pas le problème. Qu'entends-tu par "appeler un mod ule"?
> >> En général, on appelle une fonction d'un module, pas le module l ui-même.
> >> Et le retour d'un fonction est automatique (sauf si la fonction cont ient
> >> une boucle infinie).
> >> Peux-tu donner un exemple de code?
> >> Vincent Guichard
> > Oui, tu as raison. J'appelle une procédure d'un module, elle-même
> > appelle d'autres procédures de ce même module. Mais une fois cett e
> > exécution terminée, elle ne renvoie pas la main. Le code est trop
> > compliqué pour l'écrire ici.
> > J'ai peut-être fait une erreur.
> > Ça m'arrive rarement. Et j'ai trouvé la parade en déclarant une
> > variable publique et en demandant à la procédure fille de revenir en
> > arrière.
> Comment donc peux-tu demander à la procédure fille de revenir en
> arrière? Et comment une variable publique peut-elle bien corriger un
> problème tel que tu le décris? Je subodore un grave problème de
> conception de l'application. Faute du code complet, peut être
> pourrais-tu indiquer une pile des appels? Et donner la "parade" que tu
> as trouvé?
> Voici les choses telles que je les comprends, avec les informations
> limitées que j'ai. Tu appeles une fonction (ou une procédure) qui s e
> trouves dans ton module. Cette fonction ne retourne jamais: Pourquoi?
> En général, c'est qu'il y a une boucle infinie (par exemple, la
> condition de fin de boucle ne se produit pas). Une des possibilités q ui
> me viennent à l'esprit est que tu travailles sur deux threads avec de s
> variables portant le même nom, et que tu t'attends en modifiant l'une à
> voir l'autre se modifier.
> Pour sortir d'une boucle tu n'as pas 36 possibilités:
> + la condition de sortie se produit (normal)
> + un appel Exit pour sortir proprement avant que la condition soit ré alisée
> + un appel Goto vers un label en dehors de la boucle (beurk, mais
> parfois utile si on sait ce qu'on fait)
> Ce dont j'ai peur, c'est que la parade que tu as trouvé consiste en
> l'appel de la procédure maitresse, en utilisant la variable publique
> pour savoir que tu reviens de la procédure du module. Et ca, c'est tr ès
> dangereux, parce que ça veux dire que tu vas empiler les appels et fi nir
> par cracher l'appli, faute de mémoire.
> Vincent Guichard
Par exemple, mon module volonté doit déduire les propriétés de n
combinaisons :
public compteur as integer
module volonté :
public sub simulation()
compteur=compteur+1
déduction.exécution(compteur)
if compteur=n then
end
endif
end sub
module déduction :
public sub exécution(x)
blablabla
volonté.simulation
end sub
On 23 déc, 17:35, Vincent Guichard <vg.bleuciel...@wanadoo.fr> wrote:
> Le 23/12/2009 15:35, fraction a écrit :
> >> Je ne comprends pas le problème. Qu'entends-tu par "appeler un mod ule"?
> >> En général, on appelle une fonction d'un module, pas le module l ui-même.
> >> Et le retour d'un fonction est automatique (sauf si la fonction cont ient
> >> une boucle infinie).
> >> Peux-tu donner un exemple de code?
> >> Vincent Guichard
> > Oui, tu as raison. J'appelle une procédure d'un module, elle-même
> > appelle d'autres procédures de ce même module. Mais une fois cett e
> > exécution terminée, elle ne renvoie pas la main. Le code est trop
> > compliqué pour l'écrire ici.
> > J'ai peut-être fait une erreur.
> > Ça m'arrive rarement. Et j'ai trouvé la parade en déclarant une
> > variable publique et en demandant à la procédure fille de revenir en
> > arrière.
> Comment donc peux-tu demander à la procédure fille de revenir en
> arrière? Et comment une variable publique peut-elle bien corriger un
> problème tel que tu le décris? Je subodore un grave problème de
> conception de l'application. Faute du code complet, peut être
> pourrais-tu indiquer une pile des appels? Et donner la "parade" que tu
> as trouvé?
> Voici les choses telles que je les comprends, avec les informations
> limitées que j'ai. Tu appeles une fonction (ou une procédure) qui s e
> trouves dans ton module. Cette fonction ne retourne jamais: Pourquoi?
> En général, c'est qu'il y a une boucle infinie (par exemple, la
> condition de fin de boucle ne se produit pas). Une des possibilités q ui
> me viennent à l'esprit est que tu travailles sur deux threads avec de s
> variables portant le même nom, et que tu t'attends en modifiant l'une à
> voir l'autre se modifier.
> Pour sortir d'une boucle tu n'as pas 36 possibilités:
> + la condition de sortie se produit (normal)
> + un appel Exit pour sortir proprement avant que la condition soit ré alisée
> + un appel Goto vers un label en dehors de la boucle (beurk, mais
> parfois utile si on sait ce qu'on fait)
> Ce dont j'ai peur, c'est que la parade que tu as trouvé consiste en
> l'appel de la procédure maitresse, en utilisant la variable publique
> pour savoir que tu reviens de la procédure du module. Et ca, c'est tr ès
> dangereux, parce que ça veux dire que tu vas empiler les appels et fi nir
> par cracher l'appli, faute de mémoire.
> Vincent Guichard
Par exemple, mon module volonté doit déduire les propriétés de n
combinaisons :
public compteur as integer
module volonté :
public sub simulation()
compteur=compteur+1
déduction.exécution(compteur)
if compteur=n then
end
endif
end sub
module déduction :
public sub exécution(x)
blablabla
volonté.simulation
end sub
On 23 déc, 17:35, Vincent Guichard wrote:
> Le 23/12/2009 15:35, fraction a écrit :
> >> Je ne comprends pas le problème. Qu'entends-tu par "appeler un mod ule"?
> >> En général, on appelle une fonction d'un module, pas le module l ui-même.
> >> Et le retour d'un fonction est automatique (sauf si la fonction cont ient
> >> une boucle infinie).
> >> Peux-tu donner un exemple de code?
> >> Vincent Guichard
> > Oui, tu as raison. J'appelle une procédure d'un module, elle-même
> > appelle d'autres procédures de ce même module. Mais une fois cett e
> > exécution terminée, elle ne renvoie pas la main. Le code est trop
> > compliqué pour l'écrire ici.
> > J'ai peut-être fait une erreur.
> > Ça m'arrive rarement. Et j'ai trouvé la parade en déclarant une
> > variable publique et en demandant à la procédure fille de revenir en
> > arrière.
> Comment donc peux-tu demander à la procédure fille de revenir en
> arrière? Et comment une variable publique peut-elle bien corriger un
> problème tel que tu le décris? Je subodore un grave problème de
> conception de l'application. Faute du code complet, peut être
> pourrais-tu indiquer une pile des appels? Et donner la "parade" que tu
> as trouvé?
> Voici les choses telles que je les comprends, avec les informations
> limitées que j'ai. Tu appeles une fonction (ou une procédure) qui s e
> trouves dans ton module. Cette fonction ne retourne jamais: Pourquoi?
> En général, c'est qu'il y a une boucle infinie (par exemple, la
> condition de fin de boucle ne se produit pas). Une des possibilités q ui
> me viennent à l'esprit est que tu travailles sur deux threads avec de s
> variables portant le même nom, et que tu t'attends en modifiant l'une à
> voir l'autre se modifier.
> Pour sortir d'une boucle tu n'as pas 36 possibilités:
> + la condition de sortie se produit (normal)
> + un appel Exit pour sortir proprement avant que la condition soit ré alisée
> + un appel Goto vers un label en dehors de la boucle (beurk, mais
> parfois utile si on sait ce qu'on fait)
> Ce dont j'ai peur, c'est que la parade que tu as trouvé consiste en
> l'appel de la procédure maitresse, en utilisant la variable publique
> pour savoir que tu reviens de la procédure du module. Et ca, c'est tr ès
> dangereux, parce que ça veux dire que tu vas empiler les appels et fi nir
> par cracher l'appli, faute de mémoire.
> Vincent Guichard
Par exemple, mon module volonté doit déduire les propriétés de n
combinaisons :
public compteur as integer
module volonté :
public sub simulation()
compteur=compteur+1
déduction.exécution(compteur)
if compteur=n then
end
endif
end sub
module déduction :
public sub exécution(x)
blablabla
volonté.simulation
end sub