OVH Cloud OVH Cloud

Compteur de mots

4 réponses
Avatar
Emcy
Bonjour,

dans une variable, j'ai une chaine de caratères. Je voudrais compter le
nombre de mots comment faire ?

attention à la ponctuation et au espaces multiples :
ex : "salut toi !" => 2 mots
ex : "Commment ça va?Je vais bien "=> 6 mots

4 réponses

Avatar
patrick.lyon
bonjour
tu peux faire un remplacer des signes de ponctuations par
ponctuation+espace
ensuite remplacer 2 espace par un seul
le faire plusieur fois
enfin compter le nb d'espace

Bonjour,

dans une variable, j'ai une chaine de caratères. Je voudrais compter le
nombre de mots comment faire ?

attention à la ponctuation et au espaces multiples :
ex : "salut toi !" => 2 mots
ex : "Commment ça va?Je vais bien "=> 6 mots


--
Ceci est une signature automatique de MesNews.
Site : http://www.mesnews.net

Avatar
Emcy
merci

"patrick.lyon" a écrit dans le message de news:

bonjour
tu peux faire un remplacer des signes de ponctuations par
ponctuation+espace
ensuite remplacer 2 espace par un seul
le faire plusieur fois
enfin compter le nb d'espace

Bonjour,

dans une variable, j'ai une chaine de caratères. Je voudrais compter le
nombre de mots comment faire ?

attention à la ponctuation et au espaces multiples :
ex : "salut toi !" => 2 mots
ex : "Commment ça va?Je vais bien "=> 6 mots


--
Ceci est une signature automatique de MesNews.
Site : http://www.mesnews.net




Avatar
Pierre Fauconnier
Bonjour

Tu peux utiliser les expressions régulières. Il faut pour cela cocher la
référence
Microsost VBScript Regular Expressions 5.5 (ou 1.0 selon les versions)

après, tu crées une fonction qui utilise les expressions régulières pour
compter le nombre de groupe d'espaces dans ta chaine. Le nombre de mots
correspond au groupe d'espaces +1
La propriété Pattern permet de définir ce que tu recherches (ici, ( )+
signifie un ou plusieurs espaces), la propriété global permet de prendre en
compte toutes les sous-chaines correspondant au Pattern...
Cette fonction compte un nom composé (Jean-Pierre) comme un seul mot.

Function Nombre_Mots(Chaine As String) As Integer
Dim Exp_Reg As New RegExp
Dim Resultats As MatchCollection

With Exp_Reg
.Pattern = "( )+"
.Global = True
Set Resultats = .Execute(Chaine)
End With

Nombre_Mots = Resultats.Count + 1

Set Exp_Reg = Nothing
Set Resultats = Nothing
End Function

Ok?


--
Pierre Fauconnier ()
"Le bonheur n'est pas au bout du chemin. Le bonheur EST le chemin ( proverbe
zen )
Remplacez nospam.nospam par pfi.be pour répondre. Merci

"Emcy" a écrit dans le message de news:
%
Bonjour,

dans une variable, j'ai une chaine de caratères. Je voudrais compter le
nombre de mots comment faire ?

attention à la ponctuation et au espaces multiples :
ex : "salut toi !" => 2 mots
ex : "Commment ça va?Je vais bien "=> 6 mots



Avatar
Daniel
Bonsoir.
Ou, si ta version d'XL accepte les fonctions Split et Join :
Sub test()
Dim Tablo
Tablo = Split([A1])
Tablo = Split(Join(Tablo, "'"), "'")
Tablo = Split(Join(Tablo, "-"), "-")
MsgBox "Nombre de mots : " & UBound(Tablo) + 1
End Sub
Cette macro compte 6 mots dans l'expression : "l'autre abruti de
Jean-Pierre"
Cordialement.
Daniel
"Pierre Fauconnier" a écrit dans le
message de news:
Bonjour

Tu peux utiliser les expressions régulières. Il faut pour cela cocher la
référence
Microsost VBScript Regular Expressions 5.5 (ou 1.0 selon les versions)

après, tu crées une fonction qui utilise les expressions régulières pour
compter le nombre de groupe d'espaces dans ta chaine. Le nombre de mots
correspond au groupe d'espaces +1
La propriété Pattern permet de définir ce que tu recherches (ici, ( )+
signifie un ou plusieurs espaces), la propriété global permet de prendre
en compte toutes les sous-chaines correspondant au Pattern...
Cette fonction compte un nom composé (Jean-Pierre) comme un seul mot.

Function Nombre_Mots(Chaine As String) As Integer
Dim Exp_Reg As New RegExp
Dim Resultats As MatchCollection

With Exp_Reg
.Pattern = "( )+"
.Global = True
Set Resultats = .Execute(Chaine)
End With

Nombre_Mots = Resultats.Count + 1

Set Exp_Reg = Nothing
Set Resultats = Nothing
End Function

Ok?


--
Pierre Fauconnier ()
"Le bonheur n'est pas au bout du chemin. Le bonheur EST le chemin (
proverbe zen )
Remplacez nospam.nospam par pfi.be pour répondre. Merci

"Emcy" a écrit dans le message de news:
%
Bonjour,

dans une variable, j'ai une chaine de caratères. Je voudrais compter le
nombre de mots comment faire ?

attention à la ponctuation et au espaces multiples :
ex : "salut toi !" => 2 mots
ex : "Commment ça va?Je vais bien "=> 6 mots