Compter le nombre de fois qu'une lettre se trouve dans un string

Soyez le premier à donner votre avis sur cette source.

Snippet vu 5 327 fois - Téléchargée 56 fois

Contenu du snippet

Ce module indique dans la variable nbre le nombre de fois que le caractère lettre$ a été retrouvé dans la chaîne buffer$.

Source / Exemple :


' ********************************************************
' Comptes le nombre de caractères lettre$ dans un buffer
' ********************************************************
Public Function CompteCaract(buffer As String, lettre As String, nbre As Integer)
    ' Variables locales
    Dim pos As Integer
    Dim old_pos As Integer
    
    ' Début de la boucle
    old_pos = 1
    nbre = 0
    pos = InStr(old_pos, buffer, lettre, vbBinaryCompare)
    
    ' Boucle
    While pos <> 0
        nbre = nbre + 1
        old_pos = pos
        pos = InStr(old_pos + 1, buffer, lettre, vbBinaryCompare)
    Wend
End Function

Conclusion :


Le fonctionnement se fait par une boucle par décompte des positions avec un InStr()

A voir également

Ajouter un commentaire

Commentaires

cs_santiago69
Messages postés
91
Date d'inscription
jeudi 18 novembre 2004
Statut
Membre
Dernière intervention
17 décembre 2008
-
y'a plus court avec :
Public Function CompteCar(Texte As String, Lettre As String) As Long
CompteCar = Len(Texte) - Len(Replace(Texte, Lettre, ""))
End Function
cs_Antony
Messages postés
83
Date d'inscription
mardi 30 juillet 2002
Statut
Membre
Dernière intervention
13 février 2008
-
très très bon code félicitation ! et ki marche en plus ! que demande le peuple ! ms j'ai moi un pitit tout pitit prob !
je m'explique , pour me servir de cette fonction j'ai fait un truc comme ça :
Private Sub cmdCompter_Click()
Dim brol As Integer
comptagemot = CompteCaract(vers1txt.Text, Text1.Text, brol)
Label1.Caption = brol
Data1.Recordset.MoveNext
End Sub

seulement voilà j'ai plusieurs lettre à lui faire comptabiliser ! mais lui ne me comptabilise que la dernière ! comment je pe faire !!! ?? Merci d'avance !
cs_ols
Messages postés
6
Date d'inscription
dimanche 5 août 2001
Statut
Membre
Dernière intervention
25 juillet 2003
-
Oui, en dernier paramètre, tu met une variable de type integer.
Ex. :
a = 'Z'
Dim brol as Integer
CompteCaract(text1.text,a,brol)

Dans brol, tu aura le nombre de fois que le caractère "Z" a été trouvé dans text1.text.
donc pour l'apel c'est ça?:

CompteCaract (text1.text,a,)

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.