[VB] Format() d'une string

Format() d'une string [VB] - VB/VBA/VBS - Programmation

Marsh Posté le 15-07-2003 à 08:35:47    

Bonjour  :hello:  
Dans une liste, j'affiche une liste de fichier, que j'aimerais aligner sur différentes colonnes.
J'ai trouvé comment faire, grâce à la commande format. mais voici ce que cela me donne:

Code :
  1. xxx xxxxxxxxxxxx xxxxx
  2.     x         xxxx xx
  3. xxxxx   xxxxxxxxxx xxxxxxxx


alors que moi, j'aimerais mieux ceci:

Code :
  1. xxx     xxxxxxxxxxxx xxxxx
  2. x       xxxx         xx
  3. xxxxx   xxxxxxxxxx   xxxxxxxx


est-ce possible? [:dawa]
pour le moment, j'utilise ce code:

Code :
  1. lstDocuments.AddItem Format(string,"@@@@@@@@@" ) & .....


 
merci pour votre future aide  :jap:  

Reply

Marsh Posté le 15-07-2003 à 08:35:47   

Reply

Marsh Posté le 15-07-2003 à 10:33:57    

ben en fait:
 

Code :
  1. ? format("xxxxx", "@@@@@  " )
  2. xxxxx 
  3. ? format("xxxxx", "  @@@@@" )
  4.   xxxxx


 
mais si tu connais le nombre d'espaces, n'est-ce pas mieux de les insérer dans ta chaîne au moment du additem? :??:

Reply

Marsh Posté le 15-07-2003 à 11:42:16    

le problème c'est que je sais la longueur max des différentes chaines, mais pas la longeur de la chaine précisément (je boucle sur mon fameux tableau).
en fait le problème c'esst que par défaut il aligne à droite, et que j'aimerais qu'il aligne à gauche

Reply

Marsh Posté le 15-07-2003 à 11:56:01    

Un petit Len(TaString) pour savoir la longueur de string, une soustraction et tu sais combien d'espaces tu dois insérer après (fonction Space$)
 
ceci sort tout droit de ma petite librairie, ça fait exactement ce que tu veux ;) (c'est ptêt encore un peu optimisable :o)
 

Code :
  1. ' Fill a string with a defined number of spaces
  2. Public Function FillString(ByVal strMessage As String, ByVal lNumChars As Long) As String
  3.     Dim lLenStr As Long
  4.     lLenStr = Len(strMessage)
  5.     If lNumChars > lLenStr Then
  6.         FillString = strMessage & Space$(lNumChars - lLenStr)
  7.     Else
  8.         FillString = strMessage
  9.     End If
  10. End Function

Reply

Marsh Posté le 15-07-2003 à 11:57:55    

c'est super sympa merci
je le garde au chaud pour les améliorations  :jap:  
(pour le moment faut que je termine déjà une première version fonctionelle)

Reply

Marsh Posté le 15-07-2003 à 12:24:32    

Et comme çà ?
lstDocuments.AddItem Left(string & space(10), 10) & ...


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
Reply

Marsh Posté le 15-07-2003 à 13:44:50    

Mara's dad a écrit :

Et comme çà ?
lstDocuments.AddItem Left(string & space(10), 10) & ...


aussi bien mais ça coupe si c'est trop long à la fin :/  'fin d'un autre côté c'est le but, faut aligner :D

Reply

Marsh Posté le 15-07-2003 à 13:50:15    

Mara's dad a écrit :

Et comme çà ?
lstDocuments.AddItem Left(string & space(10), 10) & ...


ah ouais cest exactement ca qu'il me faut!
je peux spécifier une longeur max car je sais le nombre de caractères de la plus grande chaine
merci bokou http://www.mangaclub.ch/urd/zonesmiley/smileys/7.gif

Reply

Marsh Posté le 15-07-2003 à 14:16:11    

De rien !
J'ai l'impression que c'est la limite de ce que ma cervelle est capable de faire aujourd'hui, alors si çà aide c'est du tout bon :D


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
Reply

Marsh Posté le 07-07-2005 à 16:18:33    

Est-ce possible de fixer la largeur des caracteres ?
car j'ai beau avoir des chaines de meme longueur... au final, mes colonnes ne sont pas du tout alignees :(

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed