Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Nombre de mots dans une phrase et mot le plus long [ Archives Visual Basic / VBA ] (SUBMAIN)

lundi 1 novembre 2004 à 11:50:50 | Nombre de mots dans une phrase et mot le plus long

SUBMAIN

Voila je voudrais savoir comment faire un programme qui saisisse une phrase et affiche :
-le nombre de mots dans cette phrase.
-Le mot le plus long et le nombre de carctère qui le compose.

Merci d'avance pour votre aide.

lundi 1 novembre 2004 à 12:01:40 | Re : Nombre de mots dans une phrase et mot le plus long

CanisLupus

Membre Club Administrateur CodeS-SourceS
Salut
Pour le nombre de mots :
dim t() as string
t=split(TaPhrase," ")
nbMots = ubound(t)-lbound(t)+1

peut être avant faut-il supprimer les ponctuations, dans ce cas :
TaPhrase = replace(TaPhrase, ","," ") etc...

Pour le mot le plus long :
explorer t() ligne par ligne.

Cordialement, CanisLupus

lundi 1 novembre 2004 à 12:18:03 | Re : Nombre de mots dans une phrase et mot le plus long

CanisLupus

Membre Club Administrateur CodeS-SourceS
Un tit exemple :


Dim Phrase As String
Dim Temp As String
Dim MotPlusLong As String
Dim t() As String
Dim i As Integer
Dim l As Integer

Phrase = "CodesSources, le rendez-vous des dresseurs de puces."

' on élimine les "," et "."
Temp = Replace(Phrase, ",", "")
Temp = Replace(Temp, ".", "")

' on crée le tableau des mots
t = Split(Temp, " ")

l = 0
For i = LBound(t) To UBound(t)
If Len(t(i)) > l Then
l = Len(t(i))
MotPlusLong = t(i)
End If
Next

MsgBox "Nb de mots = " & UBound(t) - LBound(t) + 1 & Chr$(13) & _
"Mot le plus long : " & MotPlusLong & Chr$(13) & _
"Nb de caractères : " & l



Cordialement, CanisLupus

lundi 1 novembre 2004 à 13:54:25 | Re : Nombre de mots dans une phrase et mot le plus long

liquide

Membre Club
salut,
je ne comprend pourquoi la soustraction, lbound = 0 sur un split
---> UBound(t) - LBound(t) + 1

Bonne prog, poele_a_frire@hotmail.com
liquide

lundi 1 novembre 2004 à 15:21:38 | Re : Nombre de mots dans une phrase et mot le plus long

CanisLupus

Membre Club Administrateur CodeS-SourceS
DSL liquide, c une vieille habitude chez moi dans le traitement des tableaux à cause des Option Base et autre dim t(x to y).
Sur un split, tu as raison, il suffit de de ubound(t)+1 à la place de UBound(t) - LBound(t) + 1. Mais bon, comme ça, je ne peux pas me tromper. Des fois que j'ai une fonction à laquelle je passe un tableau qui peut être issu d'un split ou non.

Cordialement, CanisLupus

mardi 2 novembre 2004 à 10:49:29 | Re : Nombre de mots dans une phrase et mot le plus long

SUBMAIN

Excellent merci beaucoup c vraiment sympa de votre part de m'aidé merci beaucoup.

mardi 2 novembre 2004 à 14:32:42 | Re : Nombre de mots dans une phrase et mot le plus long

SUBMAIN

J'ai encore une ptite question c possible de réaliser ce programme sans utiliser les fonctions Lbount Ubount et Split c'est a dire sans faire de tableau.

Merci d'avance les gars.

mardi 2 novembre 2004 à 20:10:47 | Re : Nombre de mots dans une phrase et mot le plus long

CanisLupus

Membre Club Administrateur CodeS-SourceS
Oui, c possible mais tu vas galérer un max car dans ce cas il faut analyser la chaine de caractères à coup de mid$. J'ai pas d'exemple sous la main mais ça peut se faire. Et en plus, ça doit être +long. Si j'ai un moment je jette un oeil dessus.

Cordialement, CanisLupus

mardi 2 novembre 2004 à 20:16:18 | Re : Nombre de mots dans une phrase et mot le plus long

SUBMAIN

Ok merci beaucoup tu m'as deja bien aidé je ten remercie !!!

mardi 2 novembre 2004 à 21:00:57 | Re : Nombre de mots dans une phrase et mot le plus long

CanisLupus

Membre Club Administrateur CodeS-SourceS
Voilà un exemple sans tableau qui donne apparemment le même résultat que dans mon précédent exemple :


Dim Phrase As String
Dim Temp As String
Dim MotPlusLong As String
Dim MotPlusLong_Temp As String
Dim i As Integer
Dim l As Integer, l_temp As Integer
Dim nbMots As Integer

Phrase = "CodesSources, le rendez-vous des dresseurs de puces."

' élimination des "," et "."
Temp = Replace(Phrase, ",", "")
Temp = Replace(Temp, ".", "")

' Analyse de la phrase car par car
For i = 1 To Len(Temp)
Select Case Asc(LCase(Mid$(Temp, i, 1))) ' calcul de la valeur des caractères transformés en minuscules
Case 97 To 122 ' pour les car de a à z
l_temp = l_temp + 1
MotPlusLong_Temp = MotPlusLong_Temp & Mid$(Temp, i, 1)
Case Else
If l_temp > l Then l = l_temp: MotPlusLong = MotPlusLong_Temp
l_temp = 0
MotPlusLong_Temp = ""
nbMots = nbMots + 1
End Select
Next

' affichage des résultats
MsgBox "Nb de mots = " & nbMots & Chr$(13) & _
"Mot le plus long : " & MotPlusLong & Chr$(13) & _
"Nb de caractères : " & Len(MotPlusLong)


Cordialement, CanisLupus


1 2

Cette discussion est classé dans : nombre, long, mot, mots, phrase


Répondre à ce message

Sujets en rapport avec ce message

le mot le plus long [ par Rodolf ] Voilà:g 9 lettres au hasard et je dois fabriquer des mots au hasard. Donc là je génére toutes les possibilités avec ces 9 lettres; mais avec la facon Compter le nombre de mots dans une phrase sans split [ par hub ] Bonjour à tous, pouvais vous m'indiquer comment compter le nombre de mots dans une phrase sans utiliser split. (Je ne possède que vb4).Au passage si q mettre un mot d'une phrase ds une variable [ par kidpigeyre ] c un peu plus compliqué que ça ne le paraît :voici la phrase ::!~ JOIN :jémerai mettre le JOIN ds la variable chaine en sachant que et sont déjà de Connection ODBC et mots de passes [ par RVTT ] Bonjour,Je fait une connection ODBC sur une base de Gestion Commercial SAGE via le driver ODBC.Ma connection ne possede pas d'utilisateur ni de mot de RGB HEX et long nombre [ par ebwm ] bonjourquand on fait un source.backcolor (par exemple) on obtient un nombre du genre 9459964, comment convertir ce nombre en RGB ou HEX (rgb(252,84,14 long nombre ver s RGB [ par ebwm ] bonjourquand on fait un source.backcolor (par exemple) on obtient un nombre du genre 9459964, comment convertir ce nombre en RGB ou HEX (rgb(252,84,14 Besoin aide sur fonction Min et Max dans Macro Excel [ par Baboune ] Bonjour,je voudrai utiliser la fonction Min et Max suivante de TomAmplius mais je n'y comprend rien !Je voudrai aussi l'associer avec la fonction de c Probleme avec les boucles For et le If ?? ou autre chose !??? [ par RaZoR ] Ce petit programme me permet seulement de tester une petite routine d'un de mes projet !! Cette routine consiste a ouvrir un fichier .bmp en lecture b voir si un mot est dans le textbox [ par Alexandre Gauthier ] je veux que:j'ai un fichier avec certain mot a chaque lignela je veut marquer une phrase dans un textbox et en clickant sur command1 que sa analyse ch mot de passe sous access [ par kFar ] j'ai dans ma base access une table contenant des mots de passe. j'ai appliqué le masque de saisie mot de passe sur le champ correspondant, ainsi on ne


Nos sponsors

Sondage...

CalendriCode

Téléchargements



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,187 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.