Bonjour.
Je recherche votre aide pour réaliser une fonction de justification de texte.
Je développe des rapports Reporting services mais la fonction de justification n'existe pas et je me vois dans l'obligation d'en réaliser une sous VB (langage que je ne connais pas du tout mais ... pas du tout ^^)
Je regarde à droite à gauche un peu partout sur le web mais l'aide est souvent peu exploitable ou très peu expliqué.
Donc mon objectif est de réaliser une fonction qui prendrait 2 paramettres : la chaine à traiter et le nombre de caractere par ligne souhaité.
La derniere ligne n'est pas justifié
Voici ce que j'ai déjà reussis à faire :
J'ai réaliser tout l'algorythme mais je peche pour trouver de la documentation sur les fonctions liées aux chaines de caractères.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47 Public Function Justify(ByVal chaine As String, ByVal nbCaractereParLigne As Integer) As String 'Calcul du nombre de ligne réalisable avec la chaine non formatée. Dim nombreLigne = Len(chaine )/nbCaractereParLigne 'Boucle basée sur le nombre ligne Dim compteur As Integer For compteur = 1 to nombreLigne-1 step 1 'On ne justifie pas la dernière ligne 'Si le caractere positionné à "nbCaractereParLigne"*"compteur" n'est pas un espace 'Si le caractere suivant n'est pas un espace 'Regarder ou est le dernier caractere du dernier mot entier de la ligne 'Calculer le nombre de caractere entre les deux pour donner le nombre d'espace à rajouter 'Calculer le nombre d'espace total entre le début de phrase et le dernier caractere du dernier mot entier 'Si le nombre d'espace à rajouter est supérieur au nombre d'espace dans la phrase 'Calculer le modulo pour savoir le nombre d'espace à rajouter en plus 'Parcourir la ligne tant qu'il reste des espace normaux et des espace de modulo à rajouter 'Si le caractere actuel est un espace 'Rajouter un espace 'Décrementer le nombre d'espace à rajouter 'Mettre le parcours de chaine à +1 'Si il reste des espaces modulo à rajouter 'Rajouter un espace 'Décrementer le nombre d'espace modulo à rajouter 'Mettre le parcours de chaine à +1 'Fin si 'Fin si 'Mettre le parcours de chaine à +1 'Fin parcourir 'Fin si 'Sinon si le caractere suivant est un espace 'Ne rien faire (la ligne est déjà justifiée naturelement) 'Fin si 'Si le caractere positionné à "nbCaractereParLigne"*"compteur" est un espace 'Parcourir la ligne tant qu'on est pas sur un espace 'Rajouter un espace 'Fin parcourir 'Fin parcourir 'Fin si Next Return End Function
Si vous avez des sites à me conseiller ou je pourrais trouver la documentation adéquate je suis preneur comme tout code de justification qui me permettrait de comprendre un peu mieu le VB.
Merci à l'avance.
Partager