Calculer le nombre de lignes d'un texte

nazzguhl Messages postés 26 Date d'inscription mardi 17 décembre 2002 Statut Membre Dernière intervention 26 janvier 2011 - 22 sept. 2005 à 14:49
guilleto Messages postés 256 Date d'inscription jeudi 23 octobre 2003 Statut Membre Dernière intervention 20 mars 2013 - 23 sept. 2005 à 09:36
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

cs_lacomm Messages postés 298 Date d'inscription lundi 14 juin 2004 Statut Membre Dernière intervention 5 juillet 2013 1
22 sept. 2005 à 15:27
salut

peut-être printform ?
0
nazzguhl Messages postés 26 Date d'inscription mardi 17 décembre 2002 Statut Membre Dernière intervention 26 janvier 2011
22 sept. 2005 à 16:05
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
0
cboulas Messages postés 2641 Date d'inscription mercredi 2 juin 2004 Statut Membre Dernière intervention 8 janvier 2014 16
22 sept. 2005 à 22:15
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]&
0
guilleto Messages postés 256 Date d'inscription jeudi 23 octobre 2003 Statut Membre Dernière intervention 20 mars 2013 1
23 sept. 2005 à 09:36
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
0
Rejoignez-nous