J'ai fais un bout de code sous Access donc en VBA...
Ce code utilises une fonction récursive qui marche très bien, par contre
elle a 2 arguments :
- un de type string,
- et un tableau.
Les 2 évolues en fonction du niveau de récursivité.
Le problème est la lenteur de cette récursivité, pour éventuellement
accélérer tout ça, j'ai retranscrit
mon code en VB sous visual studio .net...
A mon grand désespoir, la récursivité pour l'argument de type string
fonctionne mais par celle pour l'argument tableau, celui-ci ne garde par ses
valeurs en fonction du son niveau de récursivité ???
Ma question est donc peut-on faire sous VB une fonction récursive avec un
argument tableau où est-ce impossible ???
Merci à tous de vos lumière.
@+
Jessy Sempere - Access MVP
news@access.fr.vu
------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://www.mpfa.info/
------------------------------------
news: > Re, > > Merci de t'interesser à mon problème... > J'ai fais un test avec le même code que toi, et j'obtiens 47
secondes
> Si tu veux, je peux t'envoyer une matrice qui fais 54 sur 54... > Perso je l'ai lancé sous VBA et je n'ai pas planté mais après
quelques
> heures j'ai arrêté le code... > > PS : Je pense savoir d'où viens mon problème sous VB.NET, il me
semble
qu'en > VBA et VB6, les arguments d'une fonction sont passer par défaut par > référence, hors quand j'ai retranscris mon code, mes arguments sont
passer
> par valeur (byVal) ??? > Dans le mille !!!
Ceci expliquant pourquoi il faut *toujours* utiliser les mots clés ByVal et Byref pour préfixer tous les paramètres des fonctions: C'est plus clair pour ceux qui lisent, plus facile à maintenir et ça évite ce genre de gags ...
-- Jean-marc Tester mon serveur (VB6) => http://myjmnhome.dyndns.org "There are only 10 kind of people those who understand binary and those who don't." mailto: remove '_no_spam_' ;
"Clive Lumb" <clumb2@gratuit_en_anglais.fr.invalid> a écrit dans le
message de news:OCCKw1wMGHA.3064@TK2MSFTNGP10.phx.gbl...
"Jessy Sempere [MVP]" <jessy.sempere@prg.sncf.fr> a écrit dans le
message de
news:43f487ff@news.sncf.fr...
> Re,
>
> Merci de t'interesser à mon problème...
> J'ai fais un test avec le même code que toi, et j'obtiens 47
secondes
> Si tu veux, je peux t'envoyer une matrice qui fais 54 sur 54...
> Perso je l'ai lancé sous VBA et je n'ai pas planté mais après
quelques
> heures j'ai arrêté le code...
>
> PS : Je pense savoir d'où viens mon problème sous VB.NET, il me
semble
qu'en
> VBA et VB6, les arguments d'une fonction sont passer par défaut par
> référence, hors quand j'ai retranscris mon code, mes arguments sont
passer
> par valeur (byVal) ???
>
Dans le mille !!!
Ceci expliquant pourquoi il faut *toujours* utiliser
les mots clés ByVal et Byref pour préfixer tous les
paramètres des fonctions: C'est plus clair pour ceux
qui lisent, plus facile à maintenir et ça évite ce genre de
gags ...
--
Jean-marc
Tester mon serveur (VB6) => http://myjmnhome.dyndns.org
"There are only 10 kind of people
those who understand binary and those who don't."
mailto: remove '_no_spam_' ; _no_spam_jean_marc_n2@yahoo.fr
news: > Re, > > Merci de t'interesser à mon problème... > J'ai fais un test avec le même code que toi, et j'obtiens 47
secondes
> Si tu veux, je peux t'envoyer une matrice qui fais 54 sur 54... > Perso je l'ai lancé sous VBA et je n'ai pas planté mais après
quelques
> heures j'ai arrêté le code... > > PS : Je pense savoir d'où viens mon problème sous VB.NET, il me
semble
qu'en > VBA et VB6, les arguments d'une fonction sont passer par défaut par > référence, hors quand j'ai retranscris mon code, mes arguments sont
passer
> par valeur (byVal) ??? > Dans le mille !!!
Ceci expliquant pourquoi il faut *toujours* utiliser les mots clés ByVal et Byref pour préfixer tous les paramètres des fonctions: C'est plus clair pour ceux qui lisent, plus facile à maintenir et ça évite ce genre de gags ...
-- Jean-marc Tester mon serveur (VB6) => http://myjmnhome.dyndns.org "There are only 10 kind of people those who understand binary and those who don't." mailto: remove '_no_spam_' ;
Jessy Sempere [MVP]
Re,
Je teste tout ça ce soir, et je vous dirais demain si ça fonctionne en mettant ByRef en VB .NET
@+ Jessy Sempere - Access MVP
------------------------------------ Site @ccess : http://access.jessy.free.fr/ Pour l'efficacité de tous : http://www.mpfa.info/ ------------------------------------ "Jean-Marc" a écrit dans le message de news:43f4a75f$0$15931$
"Clive Lumb" a écrit dans le message de news: > > "Jessy Sempere [MVP]" a écrit dans le message de > news: > > Re, > > > > Merci de t'interesser à mon problème... > > J'ai fais un test avec le même code que toi, et j'obtiens 47 secondes > > Si tu veux, je peux t'envoyer une matrice qui fais 54 sur 54... > > Perso je l'ai lancé sous VBA et je n'ai pas planté mais après quelques > > heures j'ai arrêté le code... > > > > PS : Je pense savoir d'où viens mon problème sous VB.NET, il me semble > qu'en > > VBA et VB6, les arguments d'une fonction sont passer par défaut par > > référence, hors quand j'ai retranscris mon code, mes arguments sont passer > > par valeur (byVal) ??? > > > Dans le mille !!!
Ceci expliquant pourquoi il faut *toujours* utiliser les mots clés ByVal et Byref pour préfixer tous les paramètres des fonctions: C'est plus clair pour ceux qui lisent, plus facile à maintenir et ça évite ce genre de gags ...
-- Jean-marc Tester mon serveur (VB6) => http://myjmnhome.dyndns.org "There are only 10 kind of people those who understand binary and those who don't." mailto: remove '_no_spam_' ;
Re,
Je teste tout ça ce soir, et je vous dirais demain si ça fonctionne en
mettant ByRef en VB .NET
@+
Jessy Sempere - Access MVP
news@access.fr.vu
------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://www.mpfa.info/
------------------------------------
"Jean-Marc" <NO_SPAM_jean_marc_n2@yahoo.fr> a écrit dans le message de
news:43f4a75f$0$15931$ba620e4c@news.skynet.be...
"Clive Lumb" <clumb2@gratuit_en_anglais.fr.invalid> a écrit dans le
message de news:OCCKw1wMGHA.3064@TK2MSFTNGP10.phx.gbl...
>
> "Jessy Sempere [MVP]" <jessy.sempere@prg.sncf.fr> a écrit dans le
message de
> news:43f487ff@news.sncf.fr...
> > Re,
> >
> > Merci de t'interesser à mon problème...
> > J'ai fais un test avec le même code que toi, et j'obtiens 47
secondes
> > Si tu veux, je peux t'envoyer une matrice qui fais 54 sur 54...
> > Perso je l'ai lancé sous VBA et je n'ai pas planté mais après
quelques
> > heures j'ai arrêté le code...
> >
> > PS : Je pense savoir d'où viens mon problème sous VB.NET, il me
semble
> qu'en
> > VBA et VB6, les arguments d'une fonction sont passer par défaut par
> > référence, hors quand j'ai retranscris mon code, mes arguments sont
passer
> > par valeur (byVal) ???
> >
> Dans le mille !!!
Ceci expliquant pourquoi il faut *toujours* utiliser
les mots clés ByVal et Byref pour préfixer tous les
paramètres des fonctions: C'est plus clair pour ceux
qui lisent, plus facile à maintenir et ça évite ce genre de
gags ...
--
Jean-marc
Tester mon serveur (VB6) => http://myjmnhome.dyndns.org
"There are only 10 kind of people
those who understand binary and those who don't."
mailto: remove '_no_spam_' ; _no_spam_jean_marc_n2@yahoo.fr
Je teste tout ça ce soir, et je vous dirais demain si ça fonctionne en mettant ByRef en VB .NET
@+ Jessy Sempere - Access MVP
------------------------------------ Site @ccess : http://access.jessy.free.fr/ Pour l'efficacité de tous : http://www.mpfa.info/ ------------------------------------ "Jean-Marc" a écrit dans le message de news:43f4a75f$0$15931$
"Clive Lumb" a écrit dans le message de news: > > "Jessy Sempere [MVP]" a écrit dans le message de > news: > > Re, > > > > Merci de t'interesser à mon problème... > > J'ai fais un test avec le même code que toi, et j'obtiens 47 secondes > > Si tu veux, je peux t'envoyer une matrice qui fais 54 sur 54... > > Perso je l'ai lancé sous VBA et je n'ai pas planté mais après quelques > > heures j'ai arrêté le code... > > > > PS : Je pense savoir d'où viens mon problème sous VB.NET, il me semble > qu'en > > VBA et VB6, les arguments d'une fonction sont passer par défaut par > > référence, hors quand j'ai retranscris mon code, mes arguments sont passer > > par valeur (byVal) ??? > > > Dans le mille !!!
Ceci expliquant pourquoi il faut *toujours* utiliser les mots clés ByVal et Byref pour préfixer tous les paramètres des fonctions: C'est plus clair pour ceux qui lisent, plus facile à maintenir et ça évite ce genre de gags ...
-- Jean-marc Tester mon serveur (VB6) => http://myjmnhome.dyndns.org "There are only 10 kind of people those who understand binary and those who don't." mailto: remove '_no_spam_' ;
Jessy Sempere [MVP]
Bonjour
Finalement, j'ai déclaré les arguments de ma fonction récursives en ByRef et malheureusement, j'ai toujours le même problème...
Sinon, vincent, tu avais testé la matrice que j'avais fourni en exemple sous VB6, mais est-ce que tu obtenais les même résultats que moi, à savoir 12 solutions possibles ???
@+ Jessy Sempere - Access MVP
------------------------------------ Site @ccess : http://access.jessy.free.fr/ Pour l'efficacité de tous : http://www.mpfa.info/ ------------------------------------ "Jean-Marc" a écrit dans le message de news:43f4a75f$0$15931$
"Clive Lumb" a écrit dans le message de news: > > "Jessy Sempere [MVP]" a écrit dans le message de > news: > > Re, > > > > Merci de t'interesser à mon problème... > > J'ai fais un test avec le même code que toi, et j'obtiens 47 secondes > > Si tu veux, je peux t'envoyer une matrice qui fais 54 sur 54... > > Perso je l'ai lancé sous VBA et je n'ai pas planté mais après quelques > > heures j'ai arrêté le code... > > > > PS : Je pense savoir d'où viens mon problème sous VB.NET, il me semble > qu'en > > VBA et VB6, les arguments d'une fonction sont passer par défaut par > > référence, hors quand j'ai retranscris mon code, mes arguments sont passer > > par valeur (byVal) ??? > > > Dans le mille !!!
Ceci expliquant pourquoi il faut *toujours* utiliser les mots clés ByVal et Byref pour préfixer tous les paramètres des fonctions: C'est plus clair pour ceux qui lisent, plus facile à maintenir et ça évite ce genre de gags ...
-- Jean-marc Tester mon serveur (VB6) => http://myjmnhome.dyndns.org "There are only 10 kind of people those who understand binary and those who don't." mailto: remove '_no_spam_' ;
Bonjour
Finalement, j'ai déclaré les arguments de ma fonction récursives en ByRef et
malheureusement, j'ai toujours le même problème...
Sinon, vincent, tu avais testé la matrice que j'avais fourni en exemple sous
VB6, mais est-ce que tu obtenais les même résultats que moi, à savoir 12
solutions possibles ???
@+
Jessy Sempere - Access MVP
news@access.fr.vu
------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://www.mpfa.info/
------------------------------------
"Jean-Marc" <NO_SPAM_jean_marc_n2@yahoo.fr> a écrit dans le message de
news:43f4a75f$0$15931$ba620e4c@news.skynet.be...
"Clive Lumb" <clumb2@gratuit_en_anglais.fr.invalid> a écrit dans le
message de news:OCCKw1wMGHA.3064@TK2MSFTNGP10.phx.gbl...
>
> "Jessy Sempere [MVP]" <jessy.sempere@prg.sncf.fr> a écrit dans le
message de
> news:43f487ff@news.sncf.fr...
> > Re,
> >
> > Merci de t'interesser à mon problème...
> > J'ai fais un test avec le même code que toi, et j'obtiens 47
secondes
> > Si tu veux, je peux t'envoyer une matrice qui fais 54 sur 54...
> > Perso je l'ai lancé sous VBA et je n'ai pas planté mais après
quelques
> > heures j'ai arrêté le code...
> >
> > PS : Je pense savoir d'où viens mon problème sous VB.NET, il me
semble
> qu'en
> > VBA et VB6, les arguments d'une fonction sont passer par défaut par
> > référence, hors quand j'ai retranscris mon code, mes arguments sont
passer
> > par valeur (byVal) ???
> >
> Dans le mille !!!
Ceci expliquant pourquoi il faut *toujours* utiliser
les mots clés ByVal et Byref pour préfixer tous les
paramètres des fonctions: C'est plus clair pour ceux
qui lisent, plus facile à maintenir et ça évite ce genre de
gags ...
--
Jean-marc
Tester mon serveur (VB6) => http://myjmnhome.dyndns.org
"There are only 10 kind of people
those who understand binary and those who don't."
mailto: remove '_no_spam_' ; _no_spam_jean_marc_n2@yahoo.fr
Finalement, j'ai déclaré les arguments de ma fonction récursives en ByRef et malheureusement, j'ai toujours le même problème...
Sinon, vincent, tu avais testé la matrice que j'avais fourni en exemple sous VB6, mais est-ce que tu obtenais les même résultats que moi, à savoir 12 solutions possibles ???
@+ Jessy Sempere - Access MVP
------------------------------------ Site @ccess : http://access.jessy.free.fr/ Pour l'efficacité de tous : http://www.mpfa.info/ ------------------------------------ "Jean-Marc" a écrit dans le message de news:43f4a75f$0$15931$
"Clive Lumb" a écrit dans le message de news: > > "Jessy Sempere [MVP]" a écrit dans le message de > news: > > Re, > > > > Merci de t'interesser à mon problème... > > J'ai fais un test avec le même code que toi, et j'obtiens 47 secondes > > Si tu veux, je peux t'envoyer une matrice qui fais 54 sur 54... > > Perso je l'ai lancé sous VBA et je n'ai pas planté mais après quelques > > heures j'ai arrêté le code... > > > > PS : Je pense savoir d'où viens mon problème sous VB.NET, il me semble > qu'en > > VBA et VB6, les arguments d'une fonction sont passer par défaut par > > référence, hors quand j'ai retranscris mon code, mes arguments sont passer > > par valeur (byVal) ??? > > > Dans le mille !!!
Ceci expliquant pourquoi il faut *toujours* utiliser les mots clés ByVal et Byref pour préfixer tous les paramètres des fonctions: C'est plus clair pour ceux qui lisent, plus facile à maintenir et ça évite ce genre de gags ...
-- Jean-marc Tester mon serveur (VB6) => http://myjmnhome.dyndns.org "There are only 10 kind of people those who understand binary and those who don't." mailto: remove '_no_spam_' ;
Vincent Guichard
Jessy Sempere [MVP] a écrit :
Bonjour
Finalement, j'ai déclaré les arguments de ma fonction récursives en ByRef et malheureusement, j'ai toujours le même problème...
Sinon, vincent, tu avais testé la matrice que j'avais fourni en exemple sous VB6, mais est-ce que tu obtenais les même résultats que moi, à savoir 12 solutions possibles ???
J'obtiens TabCombi = { 0,0,0,0,0,1,0,1,0,1,1,1 }
Vincent Guichard
Jessy Sempere [MVP] a écrit :
Bonjour
Finalement, j'ai déclaré les arguments de ma fonction récursives en ByRef et
malheureusement, j'ai toujours le même problème...
Sinon, vincent, tu avais testé la matrice que j'avais fourni en exemple sous
VB6, mais est-ce que tu obtenais les même résultats que moi, à savoir 12
solutions possibles ???
Finalement, j'ai déclaré les arguments de ma fonction récursives en ByRef et malheureusement, j'ai toujours le même problème...
Sinon, vincent, tu avais testé la matrice que j'avais fourni en exemple sous VB6, mais est-ce que tu obtenais les même résultats que moi, à savoir 12 solutions possibles ???
J'obtiens TabCombi = { 0,0,0,0,0,1,0,1,0,1,1,1 }
Vincent Guichard
Jessy Sempere [MVP]
Re,
En fait la solution doit se trouver dans le tableau tabSolutions, il doit contenir 12 éléments qui sont : "1;3;12" "1;5;10" "1;10;12" "2;4;11" "2;6;9" "2;9;11" "3;5;8" "3;8;12" "4;6;7" "4;7;11" "5;8;10" "6;7;9"
@+ Jessy Sempere - Access MVP
------------------------------------ Site @ccess : http://access.jessy.free.fr/ Pour l'efficacité de tous : http://www.mpfa.info/ ------------------------------------ "Vincent Guichard" a écrit dans le message de news:43f5adff$0$29179$
Jessy Sempere [MVP] a écrit : > Bonjour > > Finalement, j'ai déclaré les arguments de ma fonction récursives en
ByRef et
> malheureusement, j'ai toujours le même problème... > > Sinon, vincent, tu avais testé la matrice que j'avais fourni en exemple
sous
> VB6, mais est-ce que tu obtenais les même résultats que moi, à savoir 12 > solutions possibles ???
J'obtiens TabCombi = { 0,0,0,0,0,1,0,1,0,1,1,1 }
Vincent Guichard
Re,
En fait la solution doit se trouver dans le tableau tabSolutions, il doit
contenir 12 éléments qui sont :
"1;3;12"
"1;5;10"
"1;10;12"
"2;4;11"
"2;6;9"
"2;9;11"
"3;5;8"
"3;8;12"
"4;6;7"
"4;7;11"
"5;8;10"
"6;7;9"
@+
Jessy Sempere - Access MVP
news@access.fr.vu
------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://www.mpfa.info/
------------------------------------
"Vincent Guichard" <vg.bleuciel.sa@wanadoo.fr> a écrit dans le message de
news:43f5adff$0$29179$8fcfb975@news.wanadoo.fr...
Jessy Sempere [MVP] a écrit :
> Bonjour
>
> Finalement, j'ai déclaré les arguments de ma fonction récursives en
ByRef et
> malheureusement, j'ai toujours le même problème...
>
> Sinon, vincent, tu avais testé la matrice que j'avais fourni en exemple
sous
> VB6, mais est-ce que tu obtenais les même résultats que moi, à savoir 12
> solutions possibles ???
En fait la solution doit se trouver dans le tableau tabSolutions, il doit contenir 12 éléments qui sont : "1;3;12" "1;5;10" "1;10;12" "2;4;11" "2;6;9" "2;9;11" "3;5;8" "3;8;12" "4;6;7" "4;7;11" "5;8;10" "6;7;9"
@+ Jessy Sempere - Access MVP
------------------------------------ Site @ccess : http://access.jessy.free.fr/ Pour l'efficacité de tous : http://www.mpfa.info/ ------------------------------------ "Vincent Guichard" a écrit dans le message de news:43f5adff$0$29179$
Jessy Sempere [MVP] a écrit : > Bonjour > > Finalement, j'ai déclaré les arguments de ma fonction récursives en
ByRef et
> malheureusement, j'ai toujours le même problème... > > Sinon, vincent, tu avais testé la matrice que j'avais fourni en exemple
sous
> VB6, mais est-ce que tu obtenais les même résultats que moi, à savoir 12 > solutions possibles ???
J'obtiens TabCombi = { 0,0,0,0,0,1,0,1,0,1,1,1 }
Vincent Guichard
Vincent Guichard
Jessy Sempere [MVP] a écrit :
Re,
En fait la solution doit se trouver dans le tableau tabSolutions, il doit contenir 12 éléments qui sont : "1;3;12" "1;5;10" "1;10;12" "2;4;11" "2;6;9" "2;9;11" "3;5;8" "3;8;12" "4;6;7" "4;7;11" "5;8;10" "6;7;9"
@+
Yep, c'est ça.
Vincent Guichard
Jessy Sempere [MVP] a écrit :
Re,
En fait la solution doit se trouver dans le tableau tabSolutions, il doit
contenir 12 éléments qui sont :
"1;3;12"
"1;5;10"
"1;10;12"
"2;4;11"
"2;6;9"
"2;9;11"
"3;5;8"
"3;8;12"
"4;6;7"
"4;7;11"
"5;8;10"
"6;7;9"
En fait la solution doit se trouver dans le tableau tabSolutions, il doit contenir 12 éléments qui sont : "1;3;12" "1;5;10" "1;10;12" "2;4;11" "2;6;9" "2;9;11" "3;5;8" "3;8;12" "4;6;7" "4;7;11" "5;8;10" "6;7;9"