Compter les lignes d'un textbox multiligne

Résolu
letis21 Messages postés 3 Date d'inscription vendredi 26 novembre 2004 Statut Membre Dernière intervention 23 août 2005 - 22 août 2005 à 14:51
letis21 Messages postés 3 Date d'inscription vendredi 26 novembre 2004 Statut Membre Dernière intervention 23 août 2005 - 23 août 2005 à 12:19
Je voudrais savoir s'il est possible de connaître le nombre de lignes d'un textbox, sachant que mes retours à la ligne sont des retours chariot automatique rien à voir avec VbCrLf (appui sur la touche entrée).
Merci d'avnace pour vos reponses.

8 réponses

PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
22 août 2005 à 17:01
il faut que tu saches, selon la typo, le nombre de caractères consécutifs pouvant passer sur une seule ligne.
de là, tu comptes le nombre d'espaces, et de caractères "indivisibles", mais çà me semble un peu impossible. si l'utilisateur met une apostrophe non-collée à son mot, ou ponctue mal, tu ne sauras jamais...
(puisque "bonjour 12345 c'est untestbidon blablablabla blabla" peut prendre 2lignes, mais 3 avec un espace après l'apostrophe...)

peut-être y a t'il une propriété ListIndex en multiligne, ou quelque chose du genre, mais j'en doute fort.....
PCPT
3
Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 34
22 août 2005 à 15:04
je ne vois pas ce que ça pourrait d'autre que VbCrLf.



Private Sub Command1_Click()

MsgBox UBound(Split(Text1, vbCrLf))

End Sub


Daniel
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
22 août 2005 à 15:10
ta touche [entrée] est tout de même un VbCrLf
fait une boucle, tant que VbCrlf est trouvé (i = 0 val=0 tant que....val=instr(val+1, text1, vbcrlf) > 0 alors i=i+1
et tu as 1ligne de + que i.
NB : ne pas oublier de vérifier que le text complet ne finisse pas par VbCrlf (selon tes besoins). sinon, tu auras une ligne de plus, mais elle sera vide....

PCPT
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
22 août 2005 à 15:11
arf, sacré Split, oui. la méthode de Gobillot est plus simple. (ne pas oublier le NB ci-dessus cependant)
PCPT
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
22 août 2005 à 15:19
plus simple oui mais nettement plus couteuse en cycles et en mémoire (là c'est énorme si le texte est gros).
Performance et simplicité vont rarement ensemble.

ciao...
BruNews, MVP VC++
0
letis21 Messages postés 3 Date d'inscription vendredi 26 novembre 2004 Statut Membre Dernière intervention 23 août 2005
22 août 2005 à 16:27
Je me suis peut-être mal exprimée, ce que je voulais dire, c'est que j'ai un text = "aaaaaaaaaaa aaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaa aaaaaaaaaaa aaaaaaa" qui ce trouve dans un TextBox qui est plus petit que mon texte il fait donc un retour automatique du chariot. Seulement quand je veux savoir sur combien de ligne mon text a etait écrit en demandant combien de VbCrLf ou VbCr ont été fait, il me répond qu'il n'y en a aucun. Il y a t il une solution à mon problème?...
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
22 août 2005 à 17:01
Si pas de solution direct VB:
nbrLignes = SendMessage(hedit, EM_GETLINECOUNT , 0, 0)

ciao...
BruNews, MVP VC++
0
letis21 Messages postés 3 Date d'inscription vendredi 26 novembre 2004 Statut Membre Dernière intervention 23 août 2005
23 août 2005 à 12:19
Merci pcpt, j'ai réussi à faire comme tu m'as dit.
J'ai compté les mots, les espaces ainsi que les VbCr et j'obtiens à tous les coups le nombre de ligne.
Merci à tous pour vos réponses qui m'ont bien aidées...
0
Rejoignez-nous