Combien de ";" dans une chaîne de caractères ?

wiranata Messages postés 3 Date d'inscription mardi 22 avril 2003 Statut Membre Dernière intervention 31 juillet 2003 - 30 juil. 2003 à 18:34
wiranata Messages postés 3 Date d'inscription mardi 22 avril 2003 Statut Membre Dernière intervention 31 juillet 2003 - 31 juil. 2003 à 09:16
slt !
je cherche une fonction VB permettant de retourner un integer du nb d'un caractère défini dans une chaîne donnée ?
exple : combien y a-t-il de ';' dans une chaîne issue d'un fichier CSV (pr savoir combien de colonnes contient chaque ligne) ?
Je n'ai pas de trouvé dans la classe Strings....pourtant le besoin me parait assez commun...

ps : le but étant de ne pas compter mes ';' avec des InStr...

Si qqn connait une telle fonction, ce serait cool...c'est comme souvent assez urgent... ;o(

Merci, A+

3 réponses

cs_rene38 Messages postés 1858 Date d'inscription samedi 29 juin 2002 Statut Membre Dernière intervention 17 octobre 2013 11
30 juil. 2003 à 23:27
Bonsoir

Combien de points-virgules dans Chaîne ?
Pas une fonction mais presque :
On découpe la chaîne (Split) avec comme séparateur le ;
le résultat est dans un tableau (de base zéro)
On compte le nombre de lignes - 1 du tableau
et voilu !

Tableau = Split(Chaîne, ";")
Nombre_De_Points_Virgules = UBound(Tableau)
0
pcpunch Messages postés 1243 Date d'inscription mardi 7 mai 2002 Statut Membre Dernière intervention 18 février 2019 5
31 juil. 2003 à 02:41
voila ta fonction !!! c trop simple

Public Function CombienDe(Caractére As String, Chaine As String)
Dim tmp As Integer
tmp = 0
For i = 1 To Len(Chaine)If Mid(Chaine, i, Len(Caractére)) Caractére Then tmp tmp + 1
Next i
CombienDe = tmp
End Function

pour l utiliser
Dim MaChaine As String
MaChaine = "voila;; ; ; dix des points; ;virgules ;;;;"
MsgBox CombienDe(";", MaChaine) ' renvoie 10
MsgBox CombienDe(";v", MaChaine) ' renvoie 1

voila!! j espere que ca te va???
0
wiranata Messages postés 3 Date d'inscription mardi 22 avril 2003 Statut Membre Dernière intervention 31 juillet 2003
31 juil. 2003 à 09:16
slt !
merci bcp pr cette réponse rapide, c'est exactement ce qu'il me fallait...ce qui est triste c'est que j'utilise ailleurs effectivement la fction Split mais j'ai pas percuté pr mon besoin ici...ggrrrr... ;o(

Pr répondre en même tps à pcpunch (que je remercie aussi ! ;o)), la solution proposée avec Mid est à mon avis moins performante (tt comme celle que j'utilisais avant avec INSTR d'ailleurs) que par le tableau en terme de temps de calcul...or vu que mon process concerne plusieurs dizaines de milliers de lignes et des dizaines de colonnes, la différence se fait assez sensiblement sentir au bout du compte...

Dc en gros, pr avoir testé les 2, je dirai que le vainqueur de la méthode la plus efficace est bien rene38 !! bravo ! ;-)

A+ à vous 2
0
Rejoignez-nous