Compter le nombre d'occurence dans une chaine de caractères
cs_dayvid
Messages postés212Date d'inscriptionmardi 18 janvier 2011StatutMembreDernière intervention12 février 2013
-
31 déc. 2012 à 18:02
cs_dayvid
Messages postés212Date d'inscriptionmardi 18 janvier 2011StatutMembreDernière intervention12 février 2013
-
1 janv. 2013 à 18:40
Bonsoir
J'ai rien trouvé qui parle de ceci, qui plus est, y à t-il une fonction pour faire ça dans VB ?
"Compter le nombre d'occurence dans une chaine de caractères"
Exemple:
" Abc def abc Ghi Def abc jkl ghi abc Mno Jkl "
Nombre de "abc" = 3
Nombre de "Abc" = 1
Et aussi se qui est dommage, pour la recherche avec "InStr()"
de pas pouvoir lui dire de commencer et / ou de finir la recherche à tel endroit !
Sinon j'aurais crée une fonction avec elle mais c'est impossible là !
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
Nombre d'occurence dans une chaine de caractere c - Meilleures réponses
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018220 31 déc. 2012 à 18:18
Bonjour,
Avant de regarder en bas ===>> regarde donc en haut ===>> tu y as un moteyur de recherche bien plus précis
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
cs_dayvid
Messages postés212Date d'inscriptionmardi 18 janvier 2011StatutMembreDernière intervention12 février 20131 31 déc. 2012 à 18:33
Oui, c'est se que j'ai fais, j'ai fais "Compter", "Compter nombre occurrence", "Count"
Mais j'ai pas trouvé
C'est quand même marrant ça, ont à la réponse des que ont écrie le message MDR !
Enfin non c'est pas drôle en faite , je fais l’effort de rechercher pour justement ne pas ennuyer les gents et paf voilà ma récompense
Excusez-moi pour le dérangement mais...
Comme ont ne peut pas éditer ces propres messages et ni les supprimer et ba voilà quoi, pourquoi d'ailleurs ?
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018220 31 déc. 2012 à 19:09
On ne trouve que lorsque l'on sait exprimer ce que l'on cherche
A ce propos : tu possèdes MSDN/VB.Net, roi. Moi non (pas VB.Nettiste), raison pour laquelle je consulte MSDN sur internet. Et je le fais en anglais. Roi, tu l'as en français sur ta machine.
Ou vais-je chercher ? ===>>> "ché pa", mais quand je vois une rubrique disant String Manipulation Summary (= résumé des manipulations de chaîne), je me dis bêtement ; "tiens tiens !" ===>> je l'ouvre ===>>
Tapez le texte de l'url ici. =>> j'y vois (tiens tiens !) : ===>>
Return a specified number of substrings. ===>> Split, Join
>> Ah Ah ! ===>> je clique sur le mot Split, donc ===>> et ?? ===>>
Tapez le texte de l'url ici. J'ai de la chance ?
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_dayvid
Messages postés212Date d'inscriptionmardi 18 janvier 2011StatutMembreDernière intervention12 février 20131 31 déc. 2012 à 20:09
J'ai fais ça grâce à un code (de yocrita), je l'es juste modifier:
Module Module1
''' <summary>
''' Permet de renvoyer le nombre d'occurence d'une sous chaine dans une chaine de caractères
''' </summary>
''' La chaine de caractère ou rechercher
''' La chaine à rechercher
''' <returns>Renvoie le nombre de fois qu'à été trouve la chaine dans la chaine de caractères</returns>
''' <remarks></remarks>
'''
Function CountString(Chaine As String, ChaineChercher As String, Optional RespecterCase As Boolean = False) As Long
If RespecterCase Then
Return (Len(Chaine) - Len(Replace(Chaine, ChaineChercher, "", , , 0))) / Len(ChaineChercher)
Else
Return (Len(Chaine) - Len(Replace(Chaine, ChaineChercher, "", , , 1))) / Len(ChaineChercher)
End If
End Function
'Exemple d'utilisation:
Dim Chaine As String = " Abc def abc Ghi Def abc jkl ghi abc Mno Jkl "
Dim ChaineChercher As String = "abc"
Sub Main()
Console.Write(CountString(Chaine, ChaineChercher, False))
Console.ReadLine()
End Sub
End Module
cs_ShayW
Messages postés3258Date d'inscriptionjeudi 26 novembre 2009StatutMembreDernière intervention 3 décembre 201956 31 déc. 2012 à 21:45
Bonjour
d'abord
met ton projet à option strict on
projet -> properties -> onglet(compile)
et si tu codes en net retire l'apport du visual basic
projet -> properties -> references
et en bas dans la liste décoche microsoft.visualbasic
un code un peu plus nette
en fin plus net
Private Function CountString(ByVal str1 As String, ByVal stringsearch As String, Optional ByVal matchcase As Boolean = False) As Integer
If Not matchcase Then
Return (str1.Length - str1.Replace(stringsearch, String.Empty).Length) \ stringsearch.Length
Else
Return (str1.ToUpper.Length - str1.ToUpper.Replace(stringsearch.ToUpper, String.Empty).Length) \ stringsearch.Length
End If
End Function
cs_ShayW
Messages postés3258Date d'inscriptionjeudi 26 novembre 2009StatutMembreDernière intervention 3 décembre 201956 1 janv. 2013 à 12:28
plutot
Private Function CountString(ByVal str1 As String, ByVal stringsearch As String, Optional ByVal matchcase As Boolean = False) As Integer
'ex abc et AbC différent
If matchcase Then
Return (str1.Length - str1.Replace(stringsearch, String.Empty).Length) \ stringsearch.Length
Else
'abc ABC abc le meme string
Return (str1.ToUpper.Length - str1.ToUpper.Replace(stringsearch.ToUpper, String.Empty).Length) \ stringsearch.Length
End If
End Function
Dim Chaine As String = "AbcdefabcGhiDefabcjklghiabcMnoJkl "
Dim reg As New System.Text.RegularExpressions.Regex("(abc)")
Dim matches As System.Text.RegularExpressions.MatchCollection = reg.Matches(Chaine)
MessageBox.Show(matches.Count.ToString)