Fonction qui conte le nombre de fois qu'une chaine se retrouve dans une autre

Résolu
noz666 Messages postés 26 Date d'inscription lundi 8 août 2005 Statut Membre Dernière intervention 21 février 2007 - 4 janv. 2007 à 22:30
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 - 5 janv. 2007 à 08:50
Bonjour ,

Je crois que ma recherche se trouve dans le titre ... Merci de me répondre

8 réponses

Utilisateur anonyme
4 janv. 2007 à 23:27
Un exemple simple :

Const Str As String = "Bonjour CodeS-SourceS"
MsgBox UBound(Split(Str, "ou")) 'Retourne 2
3
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
4 janv. 2007 à 22:36
Split



Je crois que ta recherche se trouve dans l'aide en ligne ou avec F1 sur ce mot
0
cs_Willi Messages postés 2375 Date d'inscription jeudi 12 juillet 2001 Statut Modérateur Dernière intervention 15 décembre 2018 22
4 janv. 2007 à 22:36
Bonsoir,
Merci de faire une recherche sur le site et/ou le forum, ou voir sur codyx.org, c'est une question qui revient régulièrement sur le forum.
0
Utilisateur anonyme
4 janv. 2007 à 22:38
Salut,





Attention


, on ne demmande pas de programme tout fait.
T'as au moins des idées j'espére.
Je te met sur la voie, utilise InStr et une boucle. (je t'ai même tout dis)






__________
Kenji
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Utilisateur anonyme
4 janv. 2007 à 22:41
Bien joué jmf, je n'avais pas pensé avec split.
C'est encore mieux.






__________
Kenji
0
noz666 Messages postés 26 Date d'inscription lundi 8 août 2005 Statut Membre Dernière intervention 21 février 2007
4 janv. 2007 à 23:16
je vois pas le rapport avec split :(  mais pour la boucle je mets quoi comme condition?

Merci
0
noz666 Messages postés 26 Date d'inscription lundi 8 août 2005 Statut Membre Dernière intervention 21 février 2007
4 janv. 2007 à 23:36
Alors la je suis ton homme merci beaucoup
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
5 janv. 2007 à 08:50
Split est efficace, mais lent...
on génère ici un tableau de chaine de caractère, ce qui peut etre assez lourd.

Const Str As String = "Bonjour CodeS-SourceS"
MsgBox UBound(Split(Str, "ou")) 'Retourne 2
Retournera en fait 1, car tu affiches le UBound...

voici une fonction plus rapide, qui utlilise ce que tu Charles a énoncé en premier (Instr et Boucle) :

Public Function Count(ByRef
vsInput As String, ByRef vsPattern As String, Optional ByVal veCompare As VbCompareMethod = vbBinaryCompare) As Integer
Dim
i As Long
    i = InStr(1, vsInput, vsPattern, veCompare)
    Do While i
        Count = Count + 1
        i = InStr(i + 1, vsInput, vsPattern, veCompare)
    Loop
End Function

Qui est visible sur
http://www.codyx.org/snippet_compter-nombre-occurrence-chaine-dans-autre_158.aspx

En effet, Codyx est là pour toutes ces petites fonctions du quotidien......

Renfield
Admin CodeS-SourceS- MVP Visual Basic
0
Rejoignez-nous