3stone wrote: | | Une existait ici : http://memoaccess.free.fr/strings.htm#fInStrRev | | Et "moilneu" avait donné la sienne... |
ce qu'il y a de bien c'est que même quand je ne suis pas là, j'ai quelques serviteurs qui font ma pub gratos ;-)))
remarque, c'est aussi facile de se souvenir des fonctions qu'il y a sur memoaccess que de se souvenir de nos 21 doigts ;-)
Bonne nuit les gars, avec de beaux rêves indélébiles mais pas tachés ;-))))
-- Arnaud -------------------------------------------------- Conseils d'utilisation : http://users.skynet.be/mpfa/ Site Perso : http://memoaccess.free.fr /Réponses souhaitées sur ce forum, merci/ --------------------------------------------------
Raymond [mvp]
Bonjour Jessy. il y a une faille dans la fonction. si on recherche AA dans un texte contenant AAA sur la droite, la position trouvée est erronée. il faut remplacer InStr(lngFind + Len(Rechercher)... par InStr(lngFind + 1...... ce qui a pour conséquence un allongement des temps d'exécution mais une suppression du risque d'erreur. -- @+ Raymond Access MVP http://access.seneque.free.fr/ http://access.vba.free.fr/ http://access2003.free.fr/ http://users.skynet.be/mpfa/ pour débuter sur le forum
Bonjour Jessy.
il y a une faille dans la fonction.
si on recherche AA dans un texte contenant AAA sur la droite, la position
trouvée est erronée.
il faut remplacer InStr(lngFind + Len(Rechercher)... par InStr(lngFind +
1......
ce qui a pour conséquence un allongement des temps d'exécution mais une
suppression du risque d'erreur.
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum
Bonjour Jessy. il y a une faille dans la fonction. si on recherche AA dans un texte contenant AAA sur la droite, la position trouvée est erronée. il faut remplacer InStr(lngFind + Len(Rechercher)... par InStr(lngFind + 1...... ce qui a pour conséquence un allongement des temps d'exécution mais une suppression du risque d'erreur. -- @+ Raymond Access MVP http://access.seneque.free.fr/ http://access.vba.free.fr/ http://access2003.free.fr/ http://users.skynet.be/mpfa/ pour débuter sur le forum
Jessy Sempere [MVP]
Ah... ;-))) Tu sais bien que je n'ai pas internet petit coquin, j'attends la collecte de Raymond qui va me payer ça...
Par contre c'est marrant Arnaud et moi on a appelé nos fonction de la même façon... ;-))) (ok on est pas allé le chercher loin... ;-)
@+ Jessy Sempere - Access MVP
------------------------------------ Site @ccess : http://access.jessy.free.fr/ Pour l'efficacité de tous : http://users.skynet.be/mpfa/ ------------------------------------ "3stone" a écrit dans le message news:
Salut Jessy,
"Jessy Sempere [MVP]"
Tiens je veux bien que tu m'envois ça pour voir... ;-)) vu que je suis fidèle à Access 97
Une existait ici : http://memoaccess.free.fr/strings.htm#fInStrRev
Et "moilneu" avait donné la sienne...
Public Function gfn_RechApresCar(sVal As String, sRech As String) As String
'// Procedure gfn_RechApresCar '// Par : moilneu '// Date : 21/07/2001 19:31:50 '// '// Objet : Retourne la valeur contenu dans une chaine située '// après un caractère déterminer. '// Pour sVal = 'AA-BB-CC', Retourne 'CC' si sRech = '-' '// '// ENTRE <- '// sVal : Chaine ou la recherche doit être faite. '// sRech : Caractère à rechercher. '// '// SORT -> '// Le resultat, ou une chaine vide si le caratère rechercher '// n'as pas été trouver dans la chaine. '//
Dim iPos As Integer '// Position en cours de la recherche. Dim iMem As Integer '// Mémorisation de la position en cours. Dim iLongVal As Integer '// Compteur pour la boucle. Dim sRet As String '// Valeur renvoyer.
iPos = 1 For iLongVal = 1 To Len(sVal) iPos = InStr(iPos, sVal, sRech) If iPos = 0 Then If (iMem <> 0) Then '// Extraire la chaine située après sRech. sRet = Right(sVal, Len(sVal) - iMem) End If Exit For Else iMem = iPos '// Mémorise la position en cours. iPos = iPos + 1 End If Next iLongVal
gfn_RechApresCar = sRet '// Retourne le resultat.
End Function
Si après cela y a pas le choix ;-)))
-- A+ Pierre (3stone) Access MVP ----------------------------- http://users.skynet.be/mpfa -----------------------------
Ah... ;-)))
Tu sais bien que je n'ai pas internet petit coquin, j'attends la collecte
de Raymond qui va me payer ça...
Par contre c'est marrant Arnaud et moi on a appelé nos fonction
de la même façon... ;-))) (ok on est pas allé le chercher loin... ;-)
@+
Jessy Sempere - Access MVP
news@access.fr.vu
------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"3stone" <threestone@cielreseau.be> a écrit dans le message news:
ekZYco7UEHA.2920@TK2MSFTNGP10.phx.gbl...
Salut Jessy,
"Jessy Sempere [MVP]"
Tiens je veux bien que tu m'envois ça pour voir... ;-))
vu que je suis fidèle à Access 97
Une existait ici : http://memoaccess.free.fr/strings.htm#fInStrRev
Et "moilneu" avait donné la sienne...
Public Function gfn_RechApresCar(sVal As String, sRech As String) As
String
'// Procedure gfn_RechApresCar
'// Par : moilneu
'// Date : 21/07/2001 19:31:50
'//
'// Objet : Retourne la valeur contenu dans une chaine située
'// après un caractère déterminer.
'// Pour sVal = 'AA-BB-CC', Retourne 'CC' si sRech = '-'
'//
'// ENTRE <-
'// sVal : Chaine ou la recherche doit être faite.
'// sRech : Caractère à rechercher.
'//
'// SORT ->
'// Le resultat, ou une chaine vide si le caratère rechercher
'// n'as pas été trouver dans la chaine.
'//
Dim iPos As Integer '// Position en cours de la recherche.
Dim iMem As Integer '// Mémorisation de la position en cours.
Dim iLongVal As Integer '// Compteur pour la boucle.
Dim sRet As String '// Valeur renvoyer.
iPos = 1
For iLongVal = 1 To Len(sVal)
iPos = InStr(iPos, sVal, sRech)
If iPos = 0 Then
If (iMem <> 0) Then '// Extraire la chaine située après sRech.
sRet = Right(sVal, Len(sVal) - iMem)
End If
Exit For
Else
iMem = iPos '// Mémorise la position en cours.
iPos = iPos + 1
End If
Next iLongVal
gfn_RechApresCar = sRet '// Retourne le resultat.
End Function
Si après cela y a pas le choix ;-)))
--
A+
Pierre (3stone) Access MVP
-----------------------------
http://users.skynet.be/mpfa
-----------------------------
Ah... ;-))) Tu sais bien que je n'ai pas internet petit coquin, j'attends la collecte de Raymond qui va me payer ça...
Par contre c'est marrant Arnaud et moi on a appelé nos fonction de la même façon... ;-))) (ok on est pas allé le chercher loin... ;-)
@+ Jessy Sempere - Access MVP
------------------------------------ Site @ccess : http://access.jessy.free.fr/ Pour l'efficacité de tous : http://users.skynet.be/mpfa/ ------------------------------------ "3stone" a écrit dans le message news:
Salut Jessy,
"Jessy Sempere [MVP]"
Tiens je veux bien que tu m'envois ça pour voir... ;-)) vu que je suis fidèle à Access 97
Une existait ici : http://memoaccess.free.fr/strings.htm#fInStrRev
Et "moilneu" avait donné la sienne...
Public Function gfn_RechApresCar(sVal As String, sRech As String) As String
'// Procedure gfn_RechApresCar '// Par : moilneu '// Date : 21/07/2001 19:31:50 '// '// Objet : Retourne la valeur contenu dans une chaine située '// après un caractère déterminer. '// Pour sVal = 'AA-BB-CC', Retourne 'CC' si sRech = '-' '// '// ENTRE <- '// sVal : Chaine ou la recherche doit être faite. '// sRech : Caractère à rechercher. '// '// SORT -> '// Le resultat, ou une chaine vide si le caratère rechercher '// n'as pas été trouver dans la chaine. '//
Dim iPos As Integer '// Position en cours de la recherche. Dim iMem As Integer '// Mémorisation de la position en cours. Dim iLongVal As Integer '// Compteur pour la boucle. Dim sRet As String '// Valeur renvoyer.
iPos = 1 For iLongVal = 1 To Len(sVal) iPos = InStr(iPos, sVal, sRech) If iPos = 0 Then If (iMem <> 0) Then '// Extraire la chaine située après sRech. sRet = Right(sVal, Len(sVal) - iMem) End If Exit For Else iMem = iPos '// Mémorise la position en cours. iPos = iPos + 1 End If Next iLongVal
gfn_RechApresCar = sRet '// Retourne le resultat.
End Function
Si après cela y a pas le choix ;-)))
-- A+ Pierre (3stone) Access MVP ----------------------------- http://users.skynet.be/mpfa -----------------------------
Jessy Sempere [MVP]
Salut Raymond
Bien vu.... Par contre faudrait refaire les test, il y a des chances du coup que la tienne soit plus rapide, je vais voir si tu n'as pas le temps...
Je me demande comment Arnaud a procéder pour sa fonction ??
@+ Jessy Sempere - Access MVP
------------------------------------ Site @ccess : http://access.jessy.free.fr/ Pour l'efficacité de tous : http://users.skynet.be/mpfa/ ------------------------------------ "Raymond [mvp]" a écrit dans le message news:
Bonjour Jessy. il y a une faille dans la fonction. si on recherche AA dans un texte contenant AAA sur la droite, la position trouvée est erronée. il faut remplacer InStr(lngFind + Len(Rechercher)... par InStr(lngFind + 1...... ce qui a pour conséquence un allongement des temps d'exécution mais une suppression du risque d'erreur. -- @+ Raymond Access MVP http://access.seneque.free.fr/ http://access.vba.free.fr/ http://access2003.free.fr/ http://users.skynet.be/mpfa/ pour débuter sur le forum
Salut Raymond
Bien vu....
Par contre faudrait refaire les test, il y a des chances du coup que la
tienne
soit plus rapide, je vais voir si tu n'as pas le temps...
Je me demande comment Arnaud a procéder pour sa fonction ??
@+
Jessy Sempere - Access MVP
news@access.fr.vu
------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"Raymond [mvp]" <XYZ.access.seneque@free.fr> a écrit dans le message news:
udGg3tCVEHA.1036@TK2MSFTNGP12.phx.gbl...
Bonjour Jessy.
il y a une faille dans la fonction.
si on recherche AA dans un texte contenant AAA sur la droite, la position
trouvée est erronée.
il faut remplacer InStr(lngFind + Len(Rechercher)... par InStr(lngFind +
1......
ce qui a pour conséquence un allongement des temps d'exécution mais une
suppression du risque d'erreur.
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum
Bien vu.... Par contre faudrait refaire les test, il y a des chances du coup que la tienne soit plus rapide, je vais voir si tu n'as pas le temps...
Je me demande comment Arnaud a procéder pour sa fonction ??
@+ Jessy Sempere - Access MVP
------------------------------------ Site @ccess : http://access.jessy.free.fr/ Pour l'efficacité de tous : http://users.skynet.be/mpfa/ ------------------------------------ "Raymond [mvp]" a écrit dans le message news:
Bonjour Jessy. il y a une faille dans la fonction. si on recherche AA dans un texte contenant AAA sur la droite, la position trouvée est erronée. il faut remplacer InStr(lngFind + Len(Rechercher)... par InStr(lngFind + 1...... ce qui a pour conséquence un allongement des temps d'exécution mais une suppression du risque d'erreur. -- @+ Raymond Access MVP http://access.seneque.free.fr/ http://access.vba.free.fr/ http://access2003.free.fr/ http://users.skynet.be/mpfa/ pour débuter sur le forum
Raymond [mvp]
Bonjour jessy. Ce n'est pas la peine de tester , ça n'a pas d'impact même avec un processeur lent. à réfléchir, le 1 étant plus rapide que le len(...), sur quelques tours il n'y a a aucune différence. C'est très bien comme ça.
-- @+ Raymond Access MVP http://access.seneque.free.fr/ http://access.vba.free.fr/ http://access2003.free.fr/ http://users.skynet.be/mpfa/ pour débuter sur le forum
"Jessy Sempere [MVP]" a écrit dans le message de news:carftg$sra$
Salut Raymond
Bien vu.... Par contre faudrait refaire les test, il y a des chances du coup que la tienne soit plus rapide, je vais voir si tu n'as pas le temps...
Je me demande comment Arnaud a procéder pour sa fonction ??
Bonjour jessy.
Ce n'est pas la peine de tester , ça n'a pas d'impact même avec un
processeur lent. à réfléchir, le 1 étant plus rapide que le len(...), sur
quelques tours il n'y a a aucune différence. C'est très bien comme ça.
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum
"Jessy Sempere [MVP]" <jessy.sempere@prg.sncf.fr> a écrit dans le message de
news:carftg$sra$1@muguet.sncf.fr...
Salut Raymond
Bien vu....
Par contre faudrait refaire les test, il y a des chances du coup que la
tienne
soit plus rapide, je vais voir si tu n'as pas le temps...
Je me demande comment Arnaud a procéder pour sa fonction ??
Bonjour jessy. Ce n'est pas la peine de tester , ça n'a pas d'impact même avec un processeur lent. à réfléchir, le 1 étant plus rapide que le len(...), sur quelques tours il n'y a a aucune différence. C'est très bien comme ça.
-- @+ Raymond Access MVP http://access.seneque.free.fr/ http://access.vba.free.fr/ http://access2003.free.fr/ http://users.skynet.be/mpfa/ pour débuter sur le forum
"Jessy Sempere [MVP]" a écrit dans le message de news:carftg$sra$
Salut Raymond
Bien vu.... Par contre faudrait refaire les test, il y a des chances du coup que la tienne soit plus rapide, je vais voir si tu n'as pas le temps...
Je me demande comment Arnaud a procéder pour sa fonction ??
Jessy Sempere [MVP]
Trop tard... ;-)))
Test effectué : Fonction bouclé 50 000 fois Zone de recherche 20 caractères
résultat en milliseconds Nombre caractère recherché Raymond Jessy 1 4950 4680 2 4950 4680 3 4980 4770 caractère "" 4990 4685
Donc effectivement, rien de fulgurant... ;-)
@+ Jessy Sempere - Access MVP
------------------------------------ Site @ccess : http://access.jessy.free.fr/ Pour l'efficacité de tous : http://users.skynet.be/mpfa/ ------------------------------------ "Raymond [mvp]" a écrit dans le message news: #
Bonjour jessy. Ce n'est pas la peine de tester , ça n'a pas d'impact même avec un processeur lent. à réfléchir, le 1 étant plus rapide que le len(...), sur quelques tours il n'y a a aucune différence. C'est très bien comme ça.
-- @+ Raymond Access MVP http://access.seneque.free.fr/ http://access.vba.free.fr/ http://access2003.free.fr/ http://users.skynet.be/mpfa/ pour débuter sur le forum
"Jessy Sempere [MVP]" a écrit dans le message de
news:carftg$sra$
Salut Raymond
Bien vu.... Par contre faudrait refaire les test, il y a des chances du coup que la tienne soit plus rapide, je vais voir si tu n'as pas le temps...
Je me demande comment Arnaud a procéder pour sa fonction ??
Trop tard... ;-)))
Test effectué :
Fonction bouclé 50 000 fois
Zone de recherche 20 caractères
résultat en milliseconds
Nombre caractère recherché Raymond Jessy
1 4950
4680
2 4950
4680
3 4980
4770
caractère "" 4990 4685
Donc effectivement, rien de fulgurant... ;-)
@+
Jessy Sempere - Access MVP
news@access.fr.vu
------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"Raymond [mvp]" <XYZ.access.seneque@free.fr> a écrit dans le message news:
#1ReGqDVEHA.2360@TK2MSFTNGP10.phx.gbl...
Bonjour jessy.
Ce n'est pas la peine de tester , ça n'a pas d'impact même avec un
processeur lent. à réfléchir, le 1 étant plus rapide que le len(...), sur
quelques tours il n'y a a aucune différence. C'est très bien comme ça.
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum
"Jessy Sempere [MVP]" <jessy.sempere@prg.sncf.fr> a écrit dans le message
de
news:carftg$sra$1@muguet.sncf.fr...
Salut Raymond
Bien vu....
Par contre faudrait refaire les test, il y a des chances du coup que la
tienne
soit plus rapide, je vais voir si tu n'as pas le temps...
Je me demande comment Arnaud a procéder pour sa fonction ??
Test effectué : Fonction bouclé 50 000 fois Zone de recherche 20 caractères
résultat en milliseconds Nombre caractère recherché Raymond Jessy 1 4950 4680 2 4950 4680 3 4980 4770 caractère "" 4990 4685
Donc effectivement, rien de fulgurant... ;-)
@+ Jessy Sempere - Access MVP
------------------------------------ Site @ccess : http://access.jessy.free.fr/ Pour l'efficacité de tous : http://users.skynet.be/mpfa/ ------------------------------------ "Raymond [mvp]" a écrit dans le message news: #
Bonjour jessy. Ce n'est pas la peine de tester , ça n'a pas d'impact même avec un processeur lent. à réfléchir, le 1 étant plus rapide que le len(...), sur quelques tours il n'y a a aucune différence. C'est très bien comme ça.
-- @+ Raymond Access MVP http://access.seneque.free.fr/ http://access.vba.free.fr/ http://access2003.free.fr/ http://users.skynet.be/mpfa/ pour débuter sur le forum
"Jessy Sempere [MVP]" a écrit dans le message de
news:carftg$sra$
Salut Raymond
Bien vu.... Par contre faudrait refaire les test, il y a des chances du coup que la tienne soit plus rapide, je vais voir si tu n'as pas le temps...
Je me demande comment Arnaud a procéder pour sa fonction ??
Raymond [mvp]
Ce genre de résultat me donne toujours une notion de l'infini . 50000 boucles pour quelques millisecondes !
-- @+ Raymond Access MVP http://access.seneque.free.fr/ http://access.vba.free.fr/ http://access2003.free.fr/ http://users.skynet.be/mpfa/ pour débuter sur le forum
"Jessy Sempere [MVP]" a écrit dans le message de news:carhr0$tqv$
Trop tard... ;-)))
Test effectué : Fonction bouclé 50 000 fois Zone de recherche 20 caractères
résultat en milliseconds Nombre caractère recherché Raymond Jessy 1 4950 4680 2 4950 4680 3 4980 4770 caractère "" 4990 4685
Donc effectivement, rien de fulgurant... ;-)
Ce genre de résultat me donne toujours une notion de l'infini . 50000
boucles pour quelques millisecondes !
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum
"Jessy Sempere [MVP]" <jessy.sempere@prg.sncf.fr> a écrit dans le message de
news:carhr0$tqv$1@muguet.sncf.fr...
Trop tard... ;-)))
Test effectué :
Fonction bouclé 50 000 fois
Zone de recherche 20 caractères
résultat en milliseconds
Nombre caractère recherché Raymond Jessy
1 4950
4680
2 4950
4680
3 4980
4770
caractère "" 4990 4685
Ce genre de résultat me donne toujours une notion de l'infini . 50000 boucles pour quelques millisecondes !
-- @+ Raymond Access MVP http://access.seneque.free.fr/ http://access.vba.free.fr/ http://access2003.free.fr/ http://users.skynet.be/mpfa/ pour débuter sur le forum
"Jessy Sempere [MVP]" a écrit dans le message de news:carhr0$tqv$
Trop tard... ;-)))
Test effectué : Fonction bouclé 50 000 fois Zone de recherche 20 caractères
résultat en milliseconds Nombre caractère recherché Raymond Jessy 1 4950 4680 2 4950 4680 3 4980 4770 caractère "" 4990 4685
Donc effectivement, rien de fulgurant... ;-)
Jessy Sempere [MVP]
En fait c'était 20000 boucles, je me suis trompé... ;-)
Voilà la fonction utilisé pour le teste :
Appelé de la façon suivante par exemple : Debug.Print "Jessy", fTime("fInStrRev('bbbabbbbababbabb', 'a')", 20000) Debug.Print "Raymond", fTime("InStrRevRS('bbbabbbbababbabb', 'a')", 20000)
******************************************* Function fTime(strFunction As String, Optional lngX As Long = 1) As Long '** Fonction permettant de tester le temps '** d'exécution d'une fonction
Dim sngStart As Single Dim sngEnd As Single Dim i As Long
sngStart = Timer For i = 1 To lngX Eval (strFunction) Next sngEnd = Timer fTime = (sngEnd * 1000) - (sngStart * 1000) End Function *******************************************
@+ Jessy Sempere - Access MVP
------------------------------------ Site @ccess : http://access.jessy.free.fr/ Pour l'efficacité de tous : http://users.skynet.be/mpfa/ ------------------------------------ "Raymond [mvp]" a écrit dans le message news:
Ce genre de résultat me donne toujours une notion de l'infini . 50000 boucles pour quelques millisecondes !
-- @+ Raymond Access MVP http://access.seneque.free.fr/ http://access.vba.free.fr/ http://access2003.free.fr/ http://users.skynet.be/mpfa/ pour débuter sur le forum
"Jessy Sempere [MVP]" a écrit dans le message de
news:carhr0$tqv$
Trop tard... ;-)))
Test effectué : Fonction bouclé 50 000 fois Zone de recherche 20 caractères
résultat en milliseconds Nombre caractère recherché Raymond Jessy 1 4950 4680 2 4950 4680 3 4980 4770 caractère "" 4990 4685
Donc effectivement, rien de fulgurant... ;-)
En fait c'était 20000 boucles, je me suis trompé... ;-)
Voilà la fonction utilisé pour le teste :
Appelé de la façon suivante par exemple :
Debug.Print "Jessy", fTime("fInStrRev('bbbabbbbababbabb', 'a')", 20000)
Debug.Print "Raymond", fTime("InStrRevRS('bbbabbbbababbabb', 'a')", 20000)
*******************************************
Function fTime(strFunction As String, Optional lngX As Long = 1) As Long
'** Fonction permettant de tester le temps
'** d'exécution d'une fonction
Dim sngStart As Single
Dim sngEnd As Single
Dim i As Long
sngStart = Timer
For i = 1 To lngX
Eval (strFunction)
Next
sngEnd = Timer
fTime = (sngEnd * 1000) - (sngStart * 1000)
End Function
*******************************************
@+
Jessy Sempere - Access MVP
news@access.fr.vu
------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"Raymond [mvp]" <XYZ.access.seneque@free.fr> a écrit dans le message news:
uoNg07DVEHA.3540@TK2MSFTNGP11.phx.gbl...
Ce genre de résultat me donne toujours une notion de l'infini . 50000
boucles pour quelques millisecondes !
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum
"Jessy Sempere [MVP]" <jessy.sempere@prg.sncf.fr> a écrit dans le message
de
news:carhr0$tqv$1@muguet.sncf.fr...
Trop tard... ;-)))
Test effectué :
Fonction bouclé 50 000 fois
Zone de recherche 20 caractères
résultat en milliseconds
Nombre caractère recherché Raymond Jessy
1 4950
4680
2 4950
4680
3 4980
4770
caractère "" 4990
4685
En fait c'était 20000 boucles, je me suis trompé... ;-)
Voilà la fonction utilisé pour le teste :
Appelé de la façon suivante par exemple : Debug.Print "Jessy", fTime("fInStrRev('bbbabbbbababbabb', 'a')", 20000) Debug.Print "Raymond", fTime("InStrRevRS('bbbabbbbababbabb', 'a')", 20000)
******************************************* Function fTime(strFunction As String, Optional lngX As Long = 1) As Long '** Fonction permettant de tester le temps '** d'exécution d'une fonction
Dim sngStart As Single Dim sngEnd As Single Dim i As Long
sngStart = Timer For i = 1 To lngX Eval (strFunction) Next sngEnd = Timer fTime = (sngEnd * 1000) - (sngStart * 1000) End Function *******************************************
@+ Jessy Sempere - Access MVP
------------------------------------ Site @ccess : http://access.jessy.free.fr/ Pour l'efficacité de tous : http://users.skynet.be/mpfa/ ------------------------------------ "Raymond [mvp]" a écrit dans le message news:
Ce genre de résultat me donne toujours une notion de l'infini . 50000 boucles pour quelques millisecondes !
-- @+ Raymond Access MVP http://access.seneque.free.fr/ http://access.vba.free.fr/ http://access2003.free.fr/ http://users.skynet.be/mpfa/ pour débuter sur le forum
"Jessy Sempere [MVP]" a écrit dans le message de
news:carhr0$tqv$
Trop tard... ;-)))
Test effectué : Fonction bouclé 50 000 fois Zone de recherche 20 caractères
résultat en milliseconds Nombre caractère recherché Raymond Jessy 1 4950 4680 2 4950 4680 3 4980 4770 caractère "" 4990 4685
Donc effectivement, rien de fulgurant... ;-)
Anor
Salut Jessy
Jessy Sempere [MVP] wrote: | Ah... ;-))) | Tu sais bien que je n'ai pas internet petit coquin, j'attends la | collecte de Raymond qui va me payer ça... | | Par contre c'est marrant Arnaud et moi on a appelé nos fonction | de la même façon... ;-))) (ok on est pas allé le chercher loin... ;-) | | @+ | Jessy Sempere - Access MVP
Voici la mienne ... efin celle de snack de mémoire, je crois ;-)) Public Function fInStrRev(ByVal sIn As String, _ sFind As String, _ Optional nStart As Long = 1, _ Optional bCompare As Long = vbBinaryCompare) _ As Long
Dim nPos As Long
sIn = fStrReverse(sIn) sFind = fStrReverse(sFind) nPos = InStr(nStart, sIn, sFind, bCompare)
If nPos = 0 Then fInStrRev = 0 Else fInStrRev = Len(sIn) - nPos - Len(sFind) + 2 End If End Function à+-- Arnaud--------------------------------------------------Conseils d'utilisation : http://users.skynet.be/mpfa/ Site Perso : http://memoaccess.free.fr /Réponses souhaitées sur ce forum, merci/--------------------------------------------------
Salut Jessy
Jessy Sempere [MVP] wrote:
| Ah... ;-)))
| Tu sais bien que je n'ai pas internet petit coquin, j'attends la
| collecte de Raymond qui va me payer ça...
|
| Par contre c'est marrant Arnaud et moi on a appelé nos fonction
| de la même façon... ;-))) (ok on est pas allé le chercher loin... ;-)
|
| @+
| Jessy Sempere - Access MVP
Voici la mienne ... efin celle de snack de mémoire, je crois ;-))
Public Function fInStrRev(ByVal sIn As String, _
sFind As String, _
Optional nStart As Long = 1, _
Optional bCompare As Long = vbBinaryCompare) _
As Long
Dim nPos As Long
sIn = fStrReverse(sIn)
sFind = fStrReverse(sFind)
nPos = InStr(nStart, sIn, sFind, bCompare)
If nPos = 0 Then
fInStrRev = 0
Else
fInStrRev = Len(sIn) - nPos - Len(sFind) + 2
End If
End Function
à+-- Arnaud--------------------------------------------------Conseils d'utilisation :
http://users.skynet.be/mpfa/ Site Perso : http://memoaccess.free.fr /Réponses
souhaitées sur ce forum, merci/--------------------------------------------------
Jessy Sempere [MVP] wrote: | Ah... ;-))) | Tu sais bien que je n'ai pas internet petit coquin, j'attends la | collecte de Raymond qui va me payer ça... | | Par contre c'est marrant Arnaud et moi on a appelé nos fonction | de la même façon... ;-))) (ok on est pas allé le chercher loin... ;-) | | @+ | Jessy Sempere - Access MVP
Voici la mienne ... efin celle de snack de mémoire, je crois ;-)) Public Function fInStrRev(ByVal sIn As String, _ sFind As String, _ Optional nStart As Long = 1, _ Optional bCompare As Long = vbBinaryCompare) _ As Long
Dim nPos As Long
sIn = fStrReverse(sIn) sFind = fStrReverse(sFind) nPos = InStr(nStart, sIn, sFind, bCompare)
If nPos = 0 Then fInStrRev = 0 Else fInStrRev = Len(sIn) - nPos - Len(sFind) + 2 End If End Function à+-- Arnaud--------------------------------------------------Conseils d'utilisation : http://users.skynet.be/mpfa/ Site Perso : http://memoaccess.free.fr /Réponses souhaitées sur ce forum, merci/--------------------------------------------------
Raymond [mvp]
bonsoir Arnaud.
d'où vient fStrReverse ?
-- @+ Raymond Access MVP http://access.seneque.free.fr/ http://access.vba.free.fr/ http://access2003.free.fr/ http://users.skynet.be/mpfa/ pour débuter sur le forum
"Anor" <http://memoaccess.free.fr/anor/email.htm> a écrit dans le message de news:uoz%
Salut Jessy Voici la mienne ... efin celle de snack de mémoire, je crois ;-)) Public Function fInStrRev(ByVal sIn As String, _ sFind As String, _ Optional nStart As Long = 1, _ Optional bCompare As Long = vbBinaryCompare) _ As Long
Dim nPos As Long
sIn = fStrReverse(sIn) sFind = fStrReverse(sFind) nPos = InStr(nStart, sIn, sFind, bCompare)
If nPos = 0 Then fInStrRev = 0 Else fInStrRev = Len(sIn) - nPos - Len(sFind) + 2 End If End Function
bonsoir Arnaud.
d'où vient fStrReverse ?
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum
"Anor" <http://memoaccess.free.fr/anor/email.htm> a écrit dans le message de
news:uoz%23T9UVEHA.1652@TK2MSFTNGP09.phx.gbl...
Salut Jessy
Voici la mienne ... efin celle de snack de mémoire, je crois ;-))
Public Function fInStrRev(ByVal sIn As String, _
sFind As String, _
Optional nStart As Long = 1, _
Optional bCompare As Long = vbBinaryCompare) _
As Long
Dim nPos As Long
sIn = fStrReverse(sIn)
sFind = fStrReverse(sFind)
nPos = InStr(nStart, sIn, sFind, bCompare)
If nPos = 0 Then
fInStrRev = 0
Else
fInStrRev = Len(sIn) - nPos - Len(sFind) + 2
End If
End Function
-- @+ Raymond Access MVP http://access.seneque.free.fr/ http://access.vba.free.fr/ http://access2003.free.fr/ http://users.skynet.be/mpfa/ pour débuter sur le forum
"Anor" <http://memoaccess.free.fr/anor/email.htm> a écrit dans le message de news:uoz%
Salut Jessy Voici la mienne ... efin celle de snack de mémoire, je crois ;-)) Public Function fInStrRev(ByVal sIn As String, _ sFind As String, _ Optional nStart As Long = 1, _ Optional bCompare As Long = vbBinaryCompare) _ As Long
Dim nPos As Long
sIn = fStrReverse(sIn) sFind = fStrReverse(sFind) nPos = InStr(nStart, sIn, sFind, bCompare)
If nPos = 0 Then fInStrRev = 0 Else fInStrRev = Len(sIn) - nPos - Len(sFind) + 2 End If End Function