Nombre de lignes

Résolu
Marneus73 Messages postés 344 Date d'inscription mercredi 24 janvier 2007 Statut Membre Dernière intervention 27 octobre 2008 - 29 août 2007 à 16:28
Marneus73 Messages postés 344 Date d'inscription mercredi 24 janvier 2007 Statut Membre Dernière intervention 27 octobre 2008 - 30 août 2007 à 11:16
Bonjour à tous,
Je voudrais savoir si il était possible de créer une variable (en integer) qui donnne le nombre de lignes présentes dans une RichTextBox.
Merci d'avance.

17 réponses

Kristof_Koder Messages postés 918 Date d'inscription vendredi 3 août 2007 Statut Membre Dernière intervention 27 octobre 2008 10
30 août 2007 à 09:47
welcometomyheaven < Ne aps déclarer une variable !!! Drôle de conseil !!!
IL FAUT TOUJOURS DECLARER SES VARIABLES ! VB permet de ne pas el faire mais cela ne devrait pas exister !! C'est une abbération !!! "OPTION EXPLICIT" doit toujours être à ON !! En fait, cette option ne devrait même pas exister tout court !

Marneus73 < Ton code avec le ubound sur le split était presque bon. Sauf qu'il faut faire le split() sur vbLf uniquement ! le RichTextBox n'emploie pas le CRLF pour passer à la ligne.
Il faudra aussi penser à ajouter 1 au résultat de UBOund() car l'indice est à base zéro.

MessageBox.Show(UBound(Split(RichTextBox1.Text, vbLf)) + 1)
3
Kristof_Koder Messages postés 918 Date d'inscription vendredi 3 août 2007 Statut Membre Dernière intervention 27 octobre 2008 10
30 août 2007 à 10:46
LF = Line Feed = Saut de ligne (code ascii 10)
CR Carriage Return Retour chariot (code ascii 13)

Sous Windows, un changement de ligne est normalement fait avec deux caractères : un CR + un LF, d'ou l'existance de la constante vbCRLF. En fait :
vbCRLF = vbCR & vbLF, tout simplement
3
cs_Exploreur Messages postés 4821 Date d'inscription lundi 11 novembre 2002 Statut Membre Dernière intervention 15 novembre 2016 15
29 août 2007 à 16:49
Salut,

Regarde cette discussion si elle peut te venir en aide...

A+
Exploreur

 Linux a un noyau, Windows un pépin

 
0
Marneus73 Messages postés 344 Date d'inscription mercredi 24 janvier 2007 Statut Membre Dernière intervention 27 octobre 2008
29 août 2007 à 18:12
J'ai essayé ceci:  MessageBox.Show(UBound(Split(RichTextBox1.Text, vbCrLf)))
Mais je n'obtient que des Zéros !!!
0

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

Posez votre question
welcometomyheaven Messages postés 24 Date d'inscription dimanche 11 juin 2006 Statut Membre Dernière intervention 8 août 2008
29 août 2007 à 18:34
bonjour
voila la réponse
copie ce code et ça va marché

Public Function NTotal(RichTextBoxLigne As String)
    Dim numLines, Texte
    numLines = 1
    Texte = RichTextBoxLigne
    Do
        Apostrophe = InStr(Texte, vbCrLf)
        If Apostrophe <> 0 Then
            numLines = numLines + 1
            Texte = Mid(Texte, Apostrophe + 1, Len(Texte) - Apostrophe)
       Else
            Exit Do
        End If
    Loop
    NTotal = numLines
End Function


Private Sub Command1_Click()
    MsgBox NTotal(Text1.Text)
End Sub
0
Marneus73 Messages postés 344 Date d'inscription mercredi 24 janvier 2007 Statut Membre Dernière intervention 27 octobre 2008
29 août 2007 à 18:39
Salut
Oulala mais c'est super long !!!
0
welcometomyheaven Messages postés 24 Date d'inscription dimanche 11 juin 2006 Statut Membre Dernière intervention 8 août 2008
29 août 2007 à 18:44
bonjour
mais pas du tout
il suffu de le copier et ajouter une command et un textbox et voila c fai
0
Marneus73 Messages postés 344 Date d'inscription mercredi 24 janvier 2007 Statut Membre Dernière intervention 27 octobre 2008
29 août 2007 à 18:49
VB geule en me disant que "Apostrophe" n'est pas déclaré, c'est quoi comme type de variable ?
0
Marneus73 Messages postés 344 Date d'inscription mercredi 24 janvier 2007 Statut Membre Dernière intervention 27 octobre 2008
29 août 2007 à 18:54
Je l'ai défini en tant qu'Integer et ça marche pas, je n'ai que des 1
Je comprends vraiment rien !!!
0
welcometomyheaven Messages postés 24 Date d'inscription dimanche 11 juin 2006 Statut Membre Dernière intervention 8 août 2008
29 août 2007 à 19:02
bonjour
est ce ke t'as copier le code comme il est?
et pour "Apostrophe" tu peu la changer avec ce que tu veu comme variable ex: X ou Y
et il ne fau pas la declarer
n'oublie pas d'ajouter une textbox un et buton de commande et ne change pas leur nom
0
Marneus73 Messages postés 344 Date d'inscription mercredi 24 janvier 2007 Statut Membre Dernière intervention 27 octobre 2008
29 août 2007 à 19:12
J'ai copié le code texto et rien à part des 1 !
0
cs_Exploreur Messages postés 4821 Date d'inscription lundi 11 novembre 2002 Statut Membre Dernière intervention 15 novembre 2016 15
29 août 2007 à 20:51
Salut,

Mon premier poste est issue d'une recherche avec le moteur de recherche du site sur le forum, et il se peut qu'il te fasse adapter le code proposer en .net(je n'en sais rien, mais toi seul le sait)...

Utilise le moteur, tu y trouvera une mutlitude de topics sur le RichTextBox...

Et la solution de welcometomyheaven ne te convient pas ? Il se peut qu'il faut que tu retouches le code proposer en VB6 vers .Net

A+
Exploreur

 Linux a un noyau, Windows un pépin

 
0
Marneus73 Messages postés 344 Date d'inscription mercredi 24 janvier 2007 Statut Membre Dernière intervention 27 octobre 2008
30 août 2007 à 09:08
Re Bonjour.
Voila pourquoi rien ne marche chez moi, je suis en VB.Net !J'ai fait une recherche sur le site, et je ne trouve que deux discussions: celle d'Exploreur et une autre où ils donnent des codes astronomiques. J'ai aussi essayé sur l'aide du logiciel mais là aussi rien. Le seul truc qu'il me propose de compter ce sont les lignes d'une table (Visual Database Tools). Je vais tenter ma chance sur google...<!---->
0
lolokun Messages postés 1241 Date d'inscription mardi 10 octobre 2006 Statut Membre Dernière intervention 27 août 2013 7
30 août 2007 à 09:15
salut,

J'ai recherché et testé le code qui était mentionné aussi en vb.net dans le lien que 17710 Exploreur avait donné.
Avec MessageBox.Show(UBound(Split(RichTextBox1.Text, vbCRLf)))
j'obtiens 0.
vbcr = chr$(13) ' retour chariot
vblf = chr$(10) ' retour ligne
vbcrlf = chr$(13)+chr$(10)

J'ai essayé avec vbLf et là j'obtiens 3 alors que j'ai 4 lignes dans le richtextbox.
0
Marneus73 Messages postés 344 Date d'inscription mercredi 24 janvier 2007 Statut Membre Dernière intervention 27 octobre 2008
30 août 2007 à 10:41
Super !!!
Merci bien Ca marche.
Encore un dernier petit truc: c'est quoi: "vbLf" et "vbCRLf" ?
0
lolokun Messages postés 1241 Date d'inscription mardi 10 octobre 2006 Statut Membre Dernière intervention 27 août 2013 7
30 août 2007 à 10:45
Regarde sur mon post c'est expliqué :
vbLf c'est retour à la ligne sans le retour chariot.
0
Marneus73 Messages postés 344 Date d'inscription mercredi 24 janvier 2007 Statut Membre Dernière intervention 27 octobre 2008
30 août 2007 à 11:16
Ah Ok merci bien à tous
0
Rejoignez-nous