3edbill69
Messages postés12Date d'inscriptionlundi 16 août 2004StatutMembreDernière intervention26 septembre 2006
-
19 juin 2005 à 02:15
3edbill69
Messages postés12Date d'inscriptionlundi 16 août 2004StatutMembreDernière intervention26 septembre 2006
-
20 juin 2005 à 21:44
Bonjour,
J'essaie de faire un prog qui me permettrait de formatter un texte en lui donnant une longueur de ligne limite.
J'ai fait quelques recherches pour trouver les différents paramètres
nécessaires pour connaître la longueur des lignes et leur manipulation
mais je n'arrive pas a poursuivre mon projet car a un moment donné sa
crash sans prevenir : quand je passe a ligne suivante.
Pour la premiere ligne je peux arriver a couper la ligne pour qu'elle
soit d'une longueur de 84 caractères ou plus mais le moment venu de
compter la longueur de la deuxième ligne vb gèle et me previens que je
vais perdre toutes mes données et je dois le fermer sans sauvegarde.
Voici le code pour une ligne (qui marche):
Private Const EM_LINEINDEX = &HBB
Private Const EM_GETLINE = &HC4
Private Declare Function SendMessageLong Lib "user32" Alias
"SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As
Long, ByVal lParam As Long) As Long
cs_dragon
Messages postés2336Date d'inscriptionsamedi 14 juillet 2001StatutMembreDernière intervention 5 mai 20096 19 juin 2005 à 03:07
Si j,ai bien compris, c'est ça que tu veux. Désoler je l'ai coder ici, donc s,il y a un petit bug, genre une paranthèse qui manque, c'est normal
public function couper(texte as string, longueur as integer) as string()
redim couper(int(len(texte)/longueur) + iif(len(texte) mod longueur = 0,0,1)))
for i as integer = 0 to ubound(couper) - 1
couper(i) = mid(i * longueur,longueur)
next i
couper(ubound(couper)) = mid(ubound(couper) * longueur))
end function
-------------------------------------------------
Dragon alias aussi Waxime mais bon, pas le gout de refaire un nouveau profil lol
-------------------------------------------------
3edbill69
Messages postés12Date d'inscriptionlundi 16 août 2004StatutMembreDernière intervention26 septembre 2006 19 juin 2005 à 08:25
ok, j'ai pas encore testé ça parce que je veux prendre le temps de tout piger:
ce que tu me propose, c'est de mettre chaque ligne coupée dans un tableau de chaîne de caractères n'est-ce pas?
Si oui, alors non, ce n'est pas ce que je veux car un texte peut
commencer par un simple titre de moins de x caractères voulus, ce qui
veux dire que je dois absolument conserver le texte dans le rtbox ou
txtbox, que je ne peux pas tout simplement calculer x caractères.
A quoi sert ubound içi (je ne connais pas cette fonction)?
ps:en fait mon problem c'est que vb semble être incapable de calculer
la longueur des lignes 2,3.... lorsque j'ai déjà modifié la première.
cs_dragon
Messages postés2336Date d'inscriptionsamedi 14 juillet 2001StatutMembreDernière intervention 5 mai 20096 19 juin 2005 à 16:45
ubound sert a savoir la grandeur du tableau
bon 2e essai
public function compteurLigne(texte) as integer
return ubound(split(texte,vbcr)) + 1
end function
-------------------------------------------------
Dragon alias aussi Waxime mais bon, pas le gout de refaire un nouveau profil lol
-------------------------------------------------
cs_dragon
Messages postés2336Date d'inscriptionsamedi 14 juillet 2001StatutMembreDernière intervention 5 mai 20096 20 juin 2005 à 06:10
le split permet de convertir un chaine de caractère en tableau dépendant un certain caractères. ce cas ci, le vbcr ou vbcrlf qui est le saut de ligne
une fois le tableau tu regarde le nombre de ligne et tu ajoute 1, puisqu'un tableau débute à 0 et tu veux avoir ligne 1
puis tu retourne le résultat
-------------------------------------------------
Dragon alias aussi Waxime mais bon, pas le gout de refaire un nouveau profil lol
-------------------------------------------------