Calculer le nombre de lignes d'un texte

Signaler
Messages postés
26
Date d'inscription
mardi 17 décembre 2002
Statut
Membre
Dernière intervention
26 janvier 2011
-
Messages postés
256
Date d'inscription
jeudi 23 octobre 2003
Statut
Membre
Dernière intervention
20 mars 2013
-
Bonjour,

j'ai besoin de connaître le nombre de ligne d'un texte et je ne voie pas comment faire, je récupère dans un fichier un texte de longueur variable d'un maximum de 750 caractères et je voudrais savoir combien de lignes il faudra pour imprimer ce texte avec un police connue (exemple Arial 10) avec une largeur fixée (exemple 18 cm) et bien sur les mots ne doivent pas être coupés, je connais les méthodes form.textwidth et form.textheight, mais ça ne résoud pas mon problème.
Je sais faire ce calcul dans un autre logiciel c'est une commande simple :
WordWrap texte,justification,Nligne,largeur,police et je récupère le texte avec les retours à la ligne ou il faut dans texte et je récupère le nombre de ligne généré dans Nligne... mais ce n'est pas en VB et le reste du programme existe dèjà en VB... je n'ai pas le temps de tout reprogrammer.

Si vous pouvez me donner des tuyaux
Merci

ACT

4 réponses

Messages postés
298
Date d'inscription
lundi 14 juin 2004
Statut
Membre
Dernière intervention
5 juillet 2013
1
salut

peut-être printform ?
Messages postés
26
Date d'inscription
mardi 17 décembre 2002
Statut
Membre
Dernière intervention
26 janvier 2011

Le printform permet d'imprimer mon texte, mais ça ne me donne pas le nombre de lignes, j'en ai besoin pour la suite du programme (ce n'est pas le VB qui imprime), je dois vérifier la mise en page et décider ce qu'il reste comme place dans la page après ce texte et calculer si des tableaux doivent être basculés sur une page suivante...
Mais merci tout de même de t'être penché sur le problème.

ACT
Messages postés
2641
Date d'inscription
mercredi 2 juin 2004
Statut
Membre
Dernière intervention
8 janvier 2014
16
Salut, regarde du côté de la fonction : ReadLine() ou Line() selon la version de ton VB


Chris...
Web : Firstruner - eMail : [mailto:support@firstruner.com Support]&
Messages postés
256
Date d'inscription
jeudi 23 octobre 2003
Statut
Membre
Dernière intervention
20 mars 2013
1
Salut Nazzguhl,
Soit un Label1 avec ton Texte et une largeur de 18cm avec la police que tu veux !

En faisant la méthode suivante cela devrait fonctionner :

Printer.FontName = Label1.FontName
Printer.FontBold = Label1.FontBold
Printer.FontSize = Label1.FontSize
Printer.FontItalic = Label1.FontItalic
Printer.FontUnderlined = Label1.FontUnderlined

NbMinLigne = Printer.TextWidth(Label1.Caption)/Label1.Width

Cpt=0
Start=1
Do
Doevents
Pos = InStr(1, Label1.Caption, vbNewLine, vbTextCompare)
If Pos >0 then
Start=Pos+1
Cpt=Cpt+1
Else
Exit Do
End If
Loop

NbTotalLignes = NbMinLigne + Cpt

Voilà cela devrait fonctionner !

Bonne Prog

Olivier