bonjour, je souhaiterais imprimer un string de longueur variables (pouvant
aller jusqua 400 carateres) mon probleme est que losque je l'imprime
(printer.print MaVariable) il imprime tous sur une ligne donc pas le
string complet ou en dehors de l'imprimante, j'ai pourtant definit la
largeur d'impression de l'imprimante:
Printer.PaperSize = vbPRPSA4
Printer.ScaleMode = vbMillimeters
faut il decouper la chaine de caractere ou y a t'il plus simple, merci de
vos conseil.
bonjour, je souhaiterais imprimer un string de longueur variables (pouvant
aller jusqua 400 carateres) mon probleme est que losque je l'imprime
(printer.print MaVariable) il imprime tous sur une ligne donc pas le
string complet ou en dehors de l'imprimante, j'ai pourtant definit la
largeur d'impression de l'imprimante:
Printer.PaperSize = vbPRPSA4
Printer.ScaleMode = vbMillimeters
faut il decouper la chaine de caractere ou y a t'il plus simple, merci de
vos conseil.
bonjour, je souhaiterais imprimer un string de longueur variables (pouvant
aller jusqua 400 carateres) mon probleme est que losque je l'imprime
(printer.print MaVariable) il imprime tous sur une ligne donc pas le
string complet ou en dehors de l'imprimante, j'ai pourtant definit la
largeur d'impression de l'imprimante:
Printer.PaperSize = vbPRPSA4
Printer.ScaleMode = vbMillimeters
faut il decouper la chaine de caractere ou y a t'il plus simple, merci de
vos conseil.
bonjour, je souhaiterais imprimer un string de longueur variables (pouvant
aller jusqua 400 carateres) mon probleme est que losque je l'imprime
(printer.print MaVariable) il imprime tous sur une ligne donc pas le
complet ou en dehors de l'imprimante, j'ai pourtant definit la largeur
d'impression de l'imprimante:
Printer.PaperSize = vbPRPSA4
Printer.ScaleMode = vbMillimeters
faut il decouper la chaine de caractere ou y a t'il plus simple, merci de
vos conseil.
bonjour, je souhaiterais imprimer un string de longueur variables (pouvant
aller jusqua 400 carateres) mon probleme est que losque je l'imprime
(printer.print MaVariable) il imprime tous sur une ligne donc pas le
complet ou en dehors de l'imprimante, j'ai pourtant definit la largeur
d'impression de l'imprimante:
Printer.PaperSize = vbPRPSA4
Printer.ScaleMode = vbMillimeters
faut il decouper la chaine de caractere ou y a t'il plus simple, merci de
vos conseil.
bonjour, je souhaiterais imprimer un string de longueur variables (pouvant
aller jusqua 400 carateres) mon probleme est que losque je l'imprime
(printer.print MaVariable) il imprime tous sur une ligne donc pas le
complet ou en dehors de l'imprimante, j'ai pourtant definit la largeur
d'impression de l'imprimante:
Printer.PaperSize = vbPRPSA4
Printer.ScaleMode = vbMillimeters
faut il decouper la chaine de caractere ou y a t'il plus simple, merci de
vos conseil.
Merci pour vos reponse, je viens d'essayer ton code et sa fonctionne
parfaitement comme je le souhaitais, encore merci.
Dim maxi As Long
Dim combien As Long
Dim avance As Long
Dim texte_1 As String
Dim texte_2 As String
Dim o_s As String * 1
Dim o_n As Integer
Dim b As Long
texte_1 = Text1.Text ' texte : imp + transfert
maxi = Len(texte_1) ' lgr maxi texte
combien = 1
avance = 1
For b = 1 To maxi
o_s = Mid(texte_1, b, 1)
texte_2 = texte_2 + o_s
o_n = Asc(o_s)
If o_n = 13 Then: combien = 0
If combien > 64 And o_n = 32 Then
texte_2 = texte_2 + Chr(13)
texte_2 = texte_2 + Chr(10)
combien = 0
End If
combien = combien + 1
avance = avance + 1
Next b
Printer.FontName = "courier new"
Printer.FontSize = 8
Printer.Print texte_2
Printer.EndDoc
Merci pour vos reponse, je viens d'essayer ton code et sa fonctionne
parfaitement comme je le souhaitais, encore merci.
Dim maxi As Long
Dim combien As Long
Dim avance As Long
Dim texte_1 As String
Dim texte_2 As String
Dim o_s As String * 1
Dim o_n As Integer
Dim b As Long
texte_1 = Text1.Text ' texte : imp + transfert
maxi = Len(texte_1) ' lgr maxi texte
combien = 1
avance = 1
For b = 1 To maxi
o_s = Mid(texte_1, b, 1)
texte_2 = texte_2 + o_s
o_n = Asc(o_s)
If o_n = 13 Then: combien = 0
If combien > 64 And o_n = 32 Then
texte_2 = texte_2 + Chr(13)
texte_2 = texte_2 + Chr(10)
combien = 0
End If
combien = combien + 1
avance = avance + 1
Next b
Printer.FontName = "courier new"
Printer.FontSize = 8
Printer.Print texte_2
Printer.EndDoc
Merci pour vos reponse, je viens d'essayer ton code et sa fonctionne
parfaitement comme je le souhaitais, encore merci.
Dim maxi As Long
Dim combien As Long
Dim avance As Long
Dim texte_1 As String
Dim texte_2 As String
Dim o_s As String * 1
Dim o_n As Integer
Dim b As Long
texte_1 = Text1.Text ' texte : imp + transfert
maxi = Len(texte_1) ' lgr maxi texte
combien = 1
avance = 1
For b = 1 To maxi
o_s = Mid(texte_1, b, 1)
texte_2 = texte_2 + o_s
o_n = Asc(o_s)
If o_n = 13 Then: combien = 0
If combien > 64 And o_n = 32 Then
texte_2 = texte_2 + Chr(13)
texte_2 = texte_2 + Chr(10)
combien = 0
End If
combien = combien + 1
avance = avance + 1
Next b
Printer.FontName = "courier new"
Printer.FontSize = 8
Printer.Print texte_2
Printer.EndDoc
Merci pour vos reponse, je viens d'essayer ton code et sa fonctionne
parfaitement comme je le souhaitais, encore merci.
Dim maxi As Long
Dim combien As Long
Dim avance As Long
Dim texte_1 As String
Dim texte_2 As String
Dim o_s As String * 1
Dim o_n As Integer
Dim b As Long
texte_1 = Text1.Text ' texte : imp + transfert
maxi = Len(texte_1) ' lgr maxi texte
combien = 1
avance = 1
For b = 1 To maxi
o_s = Mid(texte_1, b, 1)
texte_2 = texte_2 + o_s
o_n = Asc(o_s)
If o_n = 13 Then: combien = 0
If combien > 64 And o_n = 32 Then
texte_2 = texte_2 + Chr(13)
texte_2 = texte_2 + Chr(10)
combien = 0
End If
combien = combien + 1
avance = avance + 1
Next b
Printer.FontName = "courier new"
Printer.FontSize = 8
Printer.Print texte_2
Printer.EndDoc
Merci pour vos reponse, je viens d'essayer ton code et sa fonctionne
parfaitement comme je le souhaitais, encore merci.
Dim maxi As Long
Dim combien As Long
Dim avance As Long
Dim texte_1 As String
Dim texte_2 As String
Dim o_s As String * 1
Dim o_n As Integer
Dim b As Long
texte_1 = Text1.Text ' texte : imp + transfert
maxi = Len(texte_1) ' lgr maxi texte
combien = 1
avance = 1
For b = 1 To maxi
o_s = Mid(texte_1, b, 1)
texte_2 = texte_2 + o_s
o_n = Asc(o_s)
If o_n = 13 Then: combien = 0
If combien > 64 And o_n = 32 Then
texte_2 = texte_2 + Chr(13)
texte_2 = texte_2 + Chr(10)
combien = 0
End If
combien = combien + 1
avance = avance + 1
Next b
Printer.FontName = "courier new"
Printer.FontSize = 8
Printer.Print texte_2
Printer.EndDoc
Merci pour vos reponse, je viens d'essayer ton code et sa fonctionne
parfaitement comme je le souhaitais, encore merci.
Dim maxi As Long
Dim combien As Long
Dim avance As Long
Dim texte_1 As String
Dim texte_2 As String
Dim o_s As String * 1
Dim o_n As Integer
Dim b As Long
texte_1 = Text1.Text ' texte : imp + transfert
maxi = Len(texte_1) ' lgr maxi texte
combien = 1
avance = 1
For b = 1 To maxi
o_s = Mid(texte_1, b, 1)
texte_2 = texte_2 + o_s
o_n = Asc(o_s)
If o_n = 13 Then: combien = 0
If combien > 64 And o_n = 32 Then
texte_2 = texte_2 + Chr(13)
texte_2 = texte_2 + Chr(10)
combien = 0
End If
combien = combien + 1
avance = avance + 1
Next b
Printer.FontName = "courier new"
Printer.FontSize = 8
Printer.Print texte_2
Printer.EndDoc
la réponse de X ne marche que pour une taille et une police de caractère
données.
si tu veux modifier celles-ci il faut de nouveau chercher manuellement le
nombre de caractères maxi par ligne..
Driss
"Joel DECOTIGNY" a écrit dans le message de
news:44ed422a$0$879$Merci pour vos reponse, je viens d'essayer ton code et sa fonctionne
parfaitement comme je le souhaitais, encore merci.
Dim maxi As Long
Dim combien As Long
Dim avance As Long
Dim texte_1 As String
Dim texte_2 As String
Dim o_s As String * 1
Dim o_n As Integer
Dim b As Long
texte_1 = Text1.Text ' texte : imp + transfert
maxi = Len(texte_1) ' lgr maxi texte
combien = 1
avance = 1
For b = 1 To maxi
o_s = Mid(texte_1, b, 1)
texte_2 = texte_2 + o_s
o_n = Asc(o_s)
If o_n = 13 Then: combien = 0
If combien > 64 And o_n = 32 Then
texte_2 = texte_2 + Chr(13)
texte_2 = texte_2 + Chr(10)
combien = 0
End If
combien = combien + 1
avance = avance + 1
Next b
Printer.FontName = "courier new"
Printer.FontSize = 8
Printer.Print texte_2
Printer.EndDoc
la réponse de X ne marche que pour une taille et une police de caractère
données.
si tu veux modifier celles-ci il faut de nouveau chercher manuellement le
nombre de caractères maxi par ligne..
Driss
"Joel DECOTIGNY" <joel.decotigny@wanadoo.fr> a écrit dans le message de
news:44ed422a$0$879$ba4acef3@news.orange.fr...
Merci pour vos reponse, je viens d'essayer ton code et sa fonctionne
parfaitement comme je le souhaitais, encore merci.
Dim maxi As Long
Dim combien As Long
Dim avance As Long
Dim texte_1 As String
Dim texte_2 As String
Dim o_s As String * 1
Dim o_n As Integer
Dim b As Long
texte_1 = Text1.Text ' texte : imp + transfert
maxi = Len(texte_1) ' lgr maxi texte
combien = 1
avance = 1
For b = 1 To maxi
o_s = Mid(texte_1, b, 1)
texte_2 = texte_2 + o_s
o_n = Asc(o_s)
If o_n = 13 Then: combien = 0
If combien > 64 And o_n = 32 Then
texte_2 = texte_2 + Chr(13)
texte_2 = texte_2 + Chr(10)
combien = 0
End If
combien = combien + 1
avance = avance + 1
Next b
Printer.FontName = "courier new"
Printer.FontSize = 8
Printer.Print texte_2
Printer.EndDoc
la réponse de X ne marche que pour une taille et une police de caractère
données.
si tu veux modifier celles-ci il faut de nouveau chercher manuellement le
nombre de caractères maxi par ligne..
Driss
"Joel DECOTIGNY" a écrit dans le message de
news:44ed422a$0$879$Merci pour vos reponse, je viens d'essayer ton code et sa fonctionne
parfaitement comme je le souhaitais, encore merci.
Dim maxi As Long
Dim combien As Long
Dim avance As Long
Dim texte_1 As String
Dim texte_2 As String
Dim o_s As String * 1
Dim o_n As Integer
Dim b As Long
texte_1 = Text1.Text ' texte : imp + transfert
maxi = Len(texte_1) ' lgr maxi texte
combien = 1
avance = 1
For b = 1 To maxi
o_s = Mid(texte_1, b, 1)
texte_2 = texte_2 + o_s
o_n = Asc(o_s)
If o_n = 13 Then: combien = 0
If combien > 64 And o_n = 32 Then
texte_2 = texte_2 + Chr(13)
texte_2 = texte_2 + Chr(10)
combien = 0
End If
combien = combien + 1
avance = avance + 1
Next b
Printer.FontName = "courier new"
Printer.FontSize = 8
Printer.Print texte_2
Printer.EndDoc
Ben il suffit de modifier le nombre de caractères par ligne, mais de
toute façon, pour bien gérer ce genre de routine il faut une police à
caractères de taille fixes...
De mémoire tu proposes la gestion au mot, et non à l'octet,
je ne crois pas non plus que ce soit bon, car tu es obligé de
repasser à
l'octet pour gérer la ponctuation espacée (ce que je ne fais pas
ici)...
http://...../a.joseph-attila-pusztay.1.htm
Ben il suffit de modifier le nombre de caractères par ligne, mais de
toute façon, pour bien gérer ce genre de routine il faut une police à
caractères de taille fixes...
De mémoire tu proposes la gestion au mot, et non à l'octet,
je ne crois pas non plus que ce soit bon, car tu es obligé de
repasser à
l'octet pour gérer la ponctuation espacée (ce que je ne fais pas
ici)...
http://...../a.joseph-attila-pusztay.1.htm
Ben il suffit de modifier le nombre de caractères par ligne, mais de
toute façon, pour bien gérer ce genre de routine il faut une police à
caractères de taille fixes...
De mémoire tu proposes la gestion au mot, et non à l'octet,
je ne crois pas non plus que ce soit bon, car tu es obligé de
repasser à
l'octet pour gérer la ponctuation espacée (ce que je ne fais pas
ici)...
http://...../a.joseph-attila-pusztay.1.htm
dans : news:,
X écrivait :
Bonjour,Ben il suffit de modifier le nombre de caractères par ligne, mais de
toute façon, pour bien gérer ce genre de routine il faut une police à
caractères de taille fixes...
Ben non. Driss utilise TextWidth qui permet de gérer les différences de
largeur de caractères, et de s'adapter à la largeur de la zone imprimable
quelque soit la taille de police utilisée.De mémoire tu proposes la gestion au mot, et non à l'octet,
Hmm. Mémoire défaillante ? C'est cette gestion des mots qui manque
justement.je ne crois pas non plus que ce soit bon, car tu es obligé de repasser à
l'octet pour gérer la ponctuation espacée (ce que je ne fais pas
ici)...
C'est effectivement ce qu'il faudrait ajouter aux deux méthodes.
Je propose donc le principe suivant (parmi d'autres certainement):
Concaténer tous les caractères tant que la largeur (TextWidth) est
strictement inférieure à la largeur imprimable moins la largeur du plus
large des caractères de ponctuation espacée.
Si le dernier caractère de la chaîne ainsi obtenue est un espace, alors
vérifier que le caractère suivant n'est pas un des ces caractères de
poctuation espacée. Si oui, l'ajouter aussi et cela fait une ligne.
Sinon, enlever un à un tous les caractères de fin jusqu'à rencontrer un
espace ou un tiret (ou peut-être d'autres cas auxquels je n'ai pas pensé).
Et cela fait une ligne.http://...../a.joseph-attila-pusztay.1.htm
Allez, un petit rappel (je ne me souviens plus où j'ai vu cela pour la
dernière fois) ;-)
http://support.microsoft.com/directory/worldwide/fr/newsgroup/regles.htm
--
Fred
http://www.cerbermail.com/?3kA6ftaCvT
dans : news:eCv8ks5xGHA.2300@TK2MSFTNGP05.phx.gbl,
X écrivait :
Bonjour,
Ben il suffit de modifier le nombre de caractères par ligne, mais de
toute façon, pour bien gérer ce genre de routine il faut une police à
caractères de taille fixes...
Ben non. Driss utilise TextWidth qui permet de gérer les différences de
largeur de caractères, et de s'adapter à la largeur de la zone imprimable
quelque soit la taille de police utilisée.
De mémoire tu proposes la gestion au mot, et non à l'octet,
Hmm. Mémoire défaillante ? C'est cette gestion des mots qui manque
justement.
je ne crois pas non plus que ce soit bon, car tu es obligé de repasser à
l'octet pour gérer la ponctuation espacée (ce que je ne fais pas
ici)...
C'est effectivement ce qu'il faudrait ajouter aux deux méthodes.
Je propose donc le principe suivant (parmi d'autres certainement):
Concaténer tous les caractères tant que la largeur (TextWidth) est
strictement inférieure à la largeur imprimable moins la largeur du plus
large des caractères de ponctuation espacée.
Si le dernier caractère de la chaîne ainsi obtenue est un espace, alors
vérifier que le caractère suivant n'est pas un des ces caractères de
poctuation espacée. Si oui, l'ajouter aussi et cela fait une ligne.
Sinon, enlever un à un tous les caractères de fin jusqu'à rencontrer un
espace ou un tiret (ou peut-être d'autres cas auxquels je n'ai pas pensé).
Et cela fait une ligne.
http://...../a.joseph-attila-pusztay.1.htm
Allez, un petit rappel (je ne me souviens plus où j'ai vu cela pour la
dernière fois) ;-)
http://support.microsoft.com/directory/worldwide/fr/newsgroup/regles.htm
--
Fred
http://www.cerbermail.com/?3kA6ftaCvT
dans : news:,
X écrivait :
Bonjour,Ben il suffit de modifier le nombre de caractères par ligne, mais de
toute façon, pour bien gérer ce genre de routine il faut une police à
caractères de taille fixes...
Ben non. Driss utilise TextWidth qui permet de gérer les différences de
largeur de caractères, et de s'adapter à la largeur de la zone imprimable
quelque soit la taille de police utilisée.De mémoire tu proposes la gestion au mot, et non à l'octet,
Hmm. Mémoire défaillante ? C'est cette gestion des mots qui manque
justement.je ne crois pas non plus que ce soit bon, car tu es obligé de repasser à
l'octet pour gérer la ponctuation espacée (ce que je ne fais pas
ici)...
C'est effectivement ce qu'il faudrait ajouter aux deux méthodes.
Je propose donc le principe suivant (parmi d'autres certainement):
Concaténer tous les caractères tant que la largeur (TextWidth) est
strictement inférieure à la largeur imprimable moins la largeur du plus
large des caractères de ponctuation espacée.
Si le dernier caractère de la chaîne ainsi obtenue est un espace, alors
vérifier que le caractère suivant n'est pas un des ces caractères de
poctuation espacée. Si oui, l'ajouter aussi et cela fait une ligne.
Sinon, enlever un à un tous les caractères de fin jusqu'à rencontrer un
espace ou un tiret (ou peut-être d'autres cas auxquels je n'ai pas pensé).
Et cela fait une ligne.http://...../a.joseph-attila-pusztay.1.htm
Allez, un petit rappel (je ne me souviens plus où j'ai vu cela pour la
dernière fois) ;-)
http://support.microsoft.com/directory/worldwide/fr/newsgroup/regles.htm
--
Fred
http://www.cerbermail.com/?3kA6ftaCvT
dans : news:,
X écrivait :
Bonjour,Ben il suffit de modifier le nombre de caractères par ligne, mais de
toute façon, pour bien gérer ce genre de routine il faut une police à
caractères de taille fixes...
Ben non. Driss utilise TextWidth qui permet de gérer les différences de
largeur de caractères, et de s'adapter à la largeur de la zone imprimable
quelque soit la taille de police utilisée.De mémoire tu proposes la gestion au mot, et non à l'octet,
Hmm. Mémoire défaillante ? C'est cette gestion des mots qui manque
justement.je ne crois pas non plus que ce soit bon, car tu es obligé de repasser à
l'octet pour gérer la ponctuation espacée (ce que je ne fais pas
ici)...
C'est effectivement ce qu'il faudrait ajouter aux deux méthodes.
Je propose donc le principe suivant (parmi d'autres certainement):
Concaténer tous les caractères tant que la largeur (TextWidth) est
strictement inférieure à la largeur imprimable moins la largeur du plus
large des caractères de ponctuation espacée.
Si le dernier caractère de la chaîne ainsi obtenue est un espace, alors
vérifier que le caractère suivant n'est pas un des ces caractères de
poctuation espacée. Si oui, l'ajouter aussi et cela fait une ligne.
Sinon, enlever un à un tous les caractères de fin jusqu'à rencontrer un
espace ou un tiret (ou peut-être d'autres cas auxquels je n'ai pas pensé).
Et cela fait une ligne.http://...../a.joseph-attila-pusztay.1.htm
Allez, un petit rappel (je ne me souviens plus où j'ai vu cela pour la
dernière fois) ;-)
http://support.microsoft.com/directory/worldwide/fr/newsgroup/regles.htm
--
Fred
http://www.cerbermail.com/?3kA6ftaCvT
dans : news:eCv8ks5xGHA.2300@TK2MSFTNGP05.phx.gbl,
X écrivait :
Bonjour,
Ben il suffit de modifier le nombre de caractères par ligne, mais de
toute façon, pour bien gérer ce genre de routine il faut une police à
caractères de taille fixes...
Ben non. Driss utilise TextWidth qui permet de gérer les différences de
largeur de caractères, et de s'adapter à la largeur de la zone imprimable
quelque soit la taille de police utilisée.
De mémoire tu proposes la gestion au mot, et non à l'octet,
Hmm. Mémoire défaillante ? C'est cette gestion des mots qui manque
justement.
je ne crois pas non plus que ce soit bon, car tu es obligé de repasser à
l'octet pour gérer la ponctuation espacée (ce que je ne fais pas
ici)...
C'est effectivement ce qu'il faudrait ajouter aux deux méthodes.
Je propose donc le principe suivant (parmi d'autres certainement):
Concaténer tous les caractères tant que la largeur (TextWidth) est
strictement inférieure à la largeur imprimable moins la largeur du plus
large des caractères de ponctuation espacée.
Si le dernier caractère de la chaîne ainsi obtenue est un espace, alors
vérifier que le caractère suivant n'est pas un des ces caractères de
poctuation espacée. Si oui, l'ajouter aussi et cela fait une ligne.
Sinon, enlever un à un tous les caractères de fin jusqu'à rencontrer un
espace ou un tiret (ou peut-être d'autres cas auxquels je n'ai pas pensé).
Et cela fait une ligne.
http://...../a.joseph-attila-pusztay.1.htm
Allez, un petit rappel (je ne me souviens plus où j'ai vu cela pour la
dernière fois) ;-)
http://support.microsoft.com/directory/worldwide/fr/newsgroup/regles.htm
--
Fred
http://www.cerbermail.com/?3kA6ftaCvT
dans : news:,
X écrivait :
Bonjour,Ben il suffit de modifier le nombre de caractères par ligne, mais de
toute façon, pour bien gérer ce genre de routine il faut une police à
caractères de taille fixes...
Ben non. Driss utilise TextWidth qui permet de gérer les différences de
largeur de caractères, et de s'adapter à la largeur de la zone imprimable
quelque soit la taille de police utilisée.De mémoire tu proposes la gestion au mot, et non à l'octet,
Hmm. Mémoire défaillante ? C'est cette gestion des mots qui manque
justement.je ne crois pas non plus que ce soit bon, car tu es obligé de repasser à
l'octet pour gérer la ponctuation espacée (ce que je ne fais pas
ici)...
C'est effectivement ce qu'il faudrait ajouter aux deux méthodes.
Je propose donc le principe suivant (parmi d'autres certainement):
Concaténer tous les caractères tant que la largeur (TextWidth) est
strictement inférieure à la largeur imprimable moins la largeur du plus
large des caractères de ponctuation espacée.
Si le dernier caractère de la chaîne ainsi obtenue est un espace, alors
vérifier que le caractère suivant n'est pas un des ces caractères de
poctuation espacée. Si oui, l'ajouter aussi et cela fait une ligne.
Sinon, enlever un à un tous les caractères de fin jusqu'à rencontrer un
espace ou un tiret (ou peut-être d'autres cas auxquels je n'ai pas pensé).
Et cela fait une ligne.http://...../a.joseph-attila-pusztay.1.htm
Allez, un petit rappel (je ne me souviens plus où j'ai vu cela pour la
dernière fois) ;-)
http://support.microsoft.com/directory/worldwide/fr/newsgroup/regles.htm
--
Fred
http://www.cerbermail.com/?3kA6ftaCvT
dans : news:,
X écrivait :
Bonjour,
> Ben il suffit de modifier le nombre de caractères par ligne, mais de
> toute façon, pour bien gérer ce genre de routine il faut une police à
> caractères de taille fixes...
Ben non. Driss utilise TextWidth qui permet de gérer les différences de
largeur de caractères, et de s'adapter à la largeur de la zone
imprimable quelque soit la taille de police utilisée.
> De mémoire tu proposes la gestion au mot, et non à l'octet,
Hmm. Mémoire défaillante ? C'est cette gestion des mots qui manque
justement.
> je ne crois pas non plus que ce soit bon, car tu es obligé de
> repasser à
> l'octet pour gérer la ponctuation espacée (ce que je ne fais pas
> ici)...
C'est effectivement ce qu'il faudrait ajouter aux deux méthodes.
Je propose donc le principe suivant (parmi d'autres certainement):
Concaténer tous les caractères tant que la largeur (TextWidth) est
strictement inférieure à la largeur imprimable moins la largeur du plus
large des caractères de ponctuation espacée.
Si le dernier caractère de la chaîne ainsi obtenue est un espace, alors
vérifier que le caractère suivant n'est pas un des ces caractères de
poctuation espacée. Si oui, l'ajouter aussi et cela fait une ligne.
Sinon, enlever un à un tous les caractères de fin jusqu'à rencontrer un
espace ou un tiret (ou peut-être d'autres cas auxquels je n'ai pas
pensé). Et cela fait une ligne.
> http://...../a.joseph-attila-pusztay.1.htm
Allez, un petit rappel (je ne me souviens plus où j'ai vu cela pour la
dernière fois) ;-)
http://support.microsoft.com/directory/worldwide/fr/newsgroup/regles.htm
--
Fred
http://www.cerbermail.com/?3kA6ftaCvT
dans : news:eCv8ks5xGHA.2300@TK2MSFTNGP05.phx.gbl,
X écrivait :
Bonjour,
> Ben il suffit de modifier le nombre de caractères par ligne, mais de
> toute façon, pour bien gérer ce genre de routine il faut une police à
> caractères de taille fixes...
Ben non. Driss utilise TextWidth qui permet de gérer les différences de
largeur de caractères, et de s'adapter à la largeur de la zone
imprimable quelque soit la taille de police utilisée.
> De mémoire tu proposes la gestion au mot, et non à l'octet,
Hmm. Mémoire défaillante ? C'est cette gestion des mots qui manque
justement.
> je ne crois pas non plus que ce soit bon, car tu es obligé de
> repasser à
> l'octet pour gérer la ponctuation espacée (ce que je ne fais pas
> ici)...
C'est effectivement ce qu'il faudrait ajouter aux deux méthodes.
Je propose donc le principe suivant (parmi d'autres certainement):
Concaténer tous les caractères tant que la largeur (TextWidth) est
strictement inférieure à la largeur imprimable moins la largeur du plus
large des caractères de ponctuation espacée.
Si le dernier caractère de la chaîne ainsi obtenue est un espace, alors
vérifier que le caractère suivant n'est pas un des ces caractères de
poctuation espacée. Si oui, l'ajouter aussi et cela fait une ligne.
Sinon, enlever un à un tous les caractères de fin jusqu'à rencontrer un
espace ou un tiret (ou peut-être d'autres cas auxquels je n'ai pas
pensé). Et cela fait une ligne.
> http://...../a.joseph-attila-pusztay.1.htm
Allez, un petit rappel (je ne me souviens plus où j'ai vu cela pour la
dernière fois) ;-)
http://support.microsoft.com/directory/worldwide/fr/newsgroup/regles.htm
--
Fred
http://www.cerbermail.com/?3kA6ftaCvT
dans : news:,
X écrivait :
Bonjour,
> Ben il suffit de modifier le nombre de caractères par ligne, mais de
> toute façon, pour bien gérer ce genre de routine il faut une police à
> caractères de taille fixes...
Ben non. Driss utilise TextWidth qui permet de gérer les différences de
largeur de caractères, et de s'adapter à la largeur de la zone
imprimable quelque soit la taille de police utilisée.
> De mémoire tu proposes la gestion au mot, et non à l'octet,
Hmm. Mémoire défaillante ? C'est cette gestion des mots qui manque
justement.
> je ne crois pas non plus que ce soit bon, car tu es obligé de
> repasser à
> l'octet pour gérer la ponctuation espacée (ce que je ne fais pas
> ici)...
C'est effectivement ce qu'il faudrait ajouter aux deux méthodes.
Je propose donc le principe suivant (parmi d'autres certainement):
Concaténer tous les caractères tant que la largeur (TextWidth) est
strictement inférieure à la largeur imprimable moins la largeur du plus
large des caractères de ponctuation espacée.
Si le dernier caractère de la chaîne ainsi obtenue est un espace, alors
vérifier que le caractère suivant n'est pas un des ces caractères de
poctuation espacée. Si oui, l'ajouter aussi et cela fait une ligne.
Sinon, enlever un à un tous les caractères de fin jusqu'à rencontrer un
espace ou un tiret (ou peut-être d'autres cas auxquels je n'ai pas
pensé). Et cela fait une ligne.
> http://...../a.joseph-attila-pusztay.1.htm
Allez, un petit rappel (je ne me souviens plus où j'ai vu cela pour la
dernière fois) ;-)
http://support.microsoft.com/directory/worldwide/fr/newsgroup/regles.htm
--
Fred
http://www.cerbermail.com/?3kA6ftaCvT