Comment compter le nombre d'occurences d'une lettre dans textbox

Résolu/Fermé
yaorens Messages postés 205 Date d'inscription dimanche 5 avril 2009 Statut Membre Dernière intervention 30 mai 2013 - 21 déc. 2012 à 01:02
yaorens Messages postés 205 Date d'inscription dimanche 5 avril 2009 Statut Membre Dernière intervention 30 mai 2013 - 22 déc. 2012 à 10:36
Bonjour,

J'aimerais savoir comment compter le nombre d'occurences d'un cractère dans un text box en vb 6.0
Pourriez vous m'aider ?


A voir également:

8 réponses

lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
Modifié par lermite222 le 21/12/2012 à 20:19
mais je suivant l'idée de GeeGee, c'est plus cour
    Function NbOc2(ByVal Chaine As String, ByVal Cherch As String) As Int16  
        Return Len(Chaine) - Len(Replace(Chaine, Cherch, ""))  
    End Function

Dans le module d'une form avec un label...
    Label1.Text = NbOc("La chaine sélectionnée pour le test","e")
A+

Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
NOTE : Je ne répond pas aux MP pour les questions techniques.
2
Bonjour

for i= 1 to len(Tachaine)
if mid$(tachaine,i,1)=caractererecherche then c=c+1
next
msgbox c
0
Bonjour

Function NbOc(Chaine As String, Ch As String, Optional RC As Boolean = False) As Long
If RC Then
NbOc = (Len(Chaine) - Len(Replace(Chaine, Ch, "", , , 0))) / Len(Ch)
Else
NbOc = (Len(Chaine) - Len(Replace(Chaine, Ch, "", , , 1))) / Len(Ch)
End If
End Function
0
yaorens Messages postés 205 Date d'inscription dimanche 5 avril 2009 Statut Membre Dernière intervention 30 mai 2013 7
21 déc. 2012 à 07:27
Bonjour Geegee , stp , tu pourrais commenter un peu ton code , je ne le comprends pas ,

d'abord , attends , je vais voir si je suis bien , tu me dis si c'est coorect ok , histoire de voir si je te suis !!

D'abord , tu fais une fonction , qui prend en paramètre la chaine de caractère , et le caractère ( dont on cherchera le nombre d'occurences )
 mais le Optional RC as Boolean = False 
je ne comprends pas , pourrais tu me dire ce qu'il représente concrètement ??

Ensuite , .................. là , je ne comprends vraiment ton code.

Moi au paravant en vb 6.0 j'avais pensé à un code du genre
 dim compteur as long ' ma variable qui comptera le nombre d'occurences 

compteur = 0 ' j'initialise d'abord mon compteur à zéro 

Pubic function retourneoccurence (Byval chaine as string , lettre as char ) as long

for i = 0 to len(Me.Text.text) Then

If Me.Text.text(i) = "lettre" Then

compteur = compteur +1
End If

Next

return compteur

End Sub



Mais , quand je fais Me.Text.Text(i) , cela ne passe pas parce que qu'apparamment , celà ne considère pas Me.Text.Text() comme un tableau de chaines de caractères
Il y'a t'il uune autre option , et pourrais tu commenter un peu ton code que je puisse comprendre ??
0

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

Posez votre question
yaorens Messages postés 205 Date d'inscription dimanche 5 avril 2009 Statut Membre Dernière intervention 30 mai 2013 7
21 déc. 2012 à 07:32
geegee , et puis dans le code que tu as mis , tu as écris

Function NbOc(Chaine As String, Ch As String, Optional RC As Boolean = False) As Long
If RC Then
NbOc = (Len(Chaine) - Len(Replace(Chaine, Ch, "", , , 0))) / Len(Ch)
Else
NbOc = (Len(Chaine) - Len(Replace(Chaine, Ch, "", , , 1))) / Len(Ch)
End If

End Function




Pourquoi posez une condition sur RC , car qu'il retourne vrai ou faux , tu effectues des opérations .
Ensuite , tu n'aurais pas oublié , deux éléments
- d'abord la portée de la fonction publique ou privée ( ou bien en vb6 , cela n'a pas d'importance on peut s'en passer ?,)
- ensuite ta fonction doit bien retourner quelque chose , je crois savoir que tu as oublié
 un return RC 
0
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 213
21 déc. 2012 à 17:41
Bonjour,

le principe est de mesurer la longueur de la chaine, puis celle de la nouvelle chaine obtenue en remplaçant le caractère recherché par "" (rien)
Tu peux refaire la fonction en la simplifiant.
Une fonction retourne la valeur qui est calculée dans la variable portant son nom.
ex :
function deux()
deux = 1+1
end function
retournera 2

eric
0
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
Modifié par lermite222 le 21/12/2012 à 19:10
Bonjour tous,
Je pense que tu est en VB.Net..
Dans un module..
Function NbOc(ByVal Chaine As String, ByVal Cherch As String) As Int16   
Dim C, e As Int16   
    For C = 1 To Len(Chaine)   
        If Microsoft.VisualBasic.Mid(Chaine, C, 1) = Cherch Then e = e + 1   
    Next   
    Return e   
End Function 

Note : Microsoft.VisualBasic. pas toujours nécessaire, je l'ai mis par sécurité.
Dans le module d'une form avec un label...
    Label1.Text = NbOc("La chaine sélectionnée pour le test","e")
A+
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
NOTE : Je ne répond pas aux MP pour les questions techniques.
0
yaorens Messages postés 205 Date d'inscription dimanche 5 avril 2009 Statut Membre Dernière intervention 30 mai 2013 7
22 déc. 2012 à 10:36
Merci à vous deux les gars
0