Fonction qui permet de compter le nombre d'occurrence d'un caractère particulier
chine38
Messages postés3Date d'inscriptionmardi 26 avril 2011StatutMembreDernière intervention27 avril 2011
-
26 avril 2011 à 22:07
cs_ShayW
Messages postés3258Date d'inscriptionjeudi 26 novembre 2009StatutMembreDernière intervention 3 décembre 2019
-
27 avril 2011 à 14:54
Bonsoir,
Je cherche à créer une fonction qui me permettra de compter le nombre d'occurrence d'un caractère particulier ("a" par exemple) dans une chaîne quelconque.
J'ai essayé avec cette "fonction" mais aucune valeur ne remonte (si toujours 0 !!!).
Merci de votre aide.
Function renvoie(s As String)
Dim i As Integer
Dim resultat As Integer
resultat = 0
For i = 1 To Len(s)
If Mid(s, i, 1) = a Then
resultat = resultat + 1
End If
Next
End Function
Sub test_renvoie()
Dim s As String ' chaîne de test, donnée par l'utilisateur
Dim nb_de_a As Integer ' nb de a dans s
Dim test As Integer
s = InputBox("Texte ?")
test = renvoie(s)
MsgBox ("nb_de_a = " & test)
End Sub
A voir également:
Compter le nombre d'occurrence d'un caractère dans une chaine
Algorithme nombre d'occurence dans une chaine - Meilleures réponses
Compter le nombre d'occurrence d'un caractère dans une chaine c - Meilleures réponses
Calade
Messages postés1207Date d'inscriptiondimanche 20 avril 2003StatutMembreDernière intervention 4 juin 201610 27 avril 2011 à 12:59
Bonjour à tous et désolé de m'immiscer dans la discussion,
à propos du $ pour les fonctions de chaînes, non seulement VB renvoi une chaîne comme le dit Cheyenne, mais en plus il ne perd pas de temps à déterminer le type en entrée, il attend une chaîne et si ce n'en est pas une, il râle.
chine38
Messages postés3Date d'inscriptionmardi 26 avril 2011StatutMembreDernière intervention27 avril 2011 26 avril 2011 à 22:28
Bonsoir,
Je cherche à créer une fonction qui me permettra de compter le nombre d'occurrence d'un caractère particulier ("a" par exemple) dans une chaîne quelconque.
J'ai essayé avec cette "fonction" mais aucune valeur ne remonte (si toujours 0 !!!).
Merci de votre aide.
Function renvoie(s As String)
Dim i As Integer
Dim resultat As Integer
resultat = 0
For i = 1 To Len(s)
If Mid(s, i, 1) = a Then
resultat = resultat + 1
End If
Next
End Function
Sub test_renvoie()
Dim s As String ' chaîne de test, donnée par l'utilisateur
Dim nb_de_a As Integer ' nb de a dans s
Dim test As Integer
s = InputBox("Texte ?")
test = renvoie(s)
MsgBox ("nb_de_a = " & test)
End Sub
Je suis désolé mais
If Mid(s, i, 1) = "a"
ne fonctionne toujours pas.
cs_Jack
Messages postés14007Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 26 avril 2011 à 23:27
Salut
Inutile de répéter ta question, on avait compris.
Est-ce que tu as réflechis à ce que t'as dit ShayW ?
D'autre part, tu seulement tu ouvrais l'aide de VB, tu saurais que la syntaxe de déclaration ta fonction est incomplète, même si elle peut fonctionner comme ça.
Function renvoie(s As String) As Integer
D'autre part, où, dans ta fonction, renvoies-tu le résultat ?
Nulle part.
Ajoute ceci dans ta fonction :
renvoie = resultat
Vala
Jack, MVP VB NB : Je ne répondrai pas aux messages privés
Le savoir est la seule matière qui s'accroit quand on la partage (Socrate) [img]http://allproj
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_Jack
Messages postés14007Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 27 avril 2011 à 01:49
Oui, le $ est facultatif, ce n'est qu'une histoire de compilation/bibliothèque, mais ça ne coûte rien de le mettre et permet de se rappeler que la fonction renvoie une String.
cs_cheyenne
Messages postés693Date d'inscriptionsamedi 18 mai 2002StatutMembreDernière intervention17 avril 20172 27 avril 2011 à 10:50
Bonjour Jack,
Oui, certes, c'est facultatif, mais il n'empêche que le traitement est plus rapide avec $, car sans le symbole la fonction renvoie un type Variant. Puis c'est une bonne habitude de "typer", ce n'est pas à toi que je vais apprendre cela.