VB6 Donner une taille fixe à une chaine de caractère

Résolu
cs_MagDix Messages postés 532 Date d'inscription lundi 5 juin 2006 Statut Membre Dernière intervention 6 octobre 2012 - 5 juin 2006 à 18:38
cs_MagDix Messages postés 532 Date d'inscription lundi 5 juin 2006 Statut Membre Dernière intervention 6 octobre 2012 - 6 juin 2006 à 13:00
Salut...

Je suis à la recherche (si cela existe) d'une facon de faire pour que mes chaines de caractères aient tous 25 "carcatères" de long.

C'est-à-dire que si j'ai un mot de 4 lettres ex. "auto" j'aurai comme résultat "auto                     " et si j'ai un mot de "chaine non dissociée" j'aurai comme résultat "chaine non dissociée     "

Bref si je fais un Len après avoir modifié mon texte je devrai avoir 25

Je sais que je peux utiliser les Focntions Space et Len mais ce devient plus long à coder.  Exist-il une fonction qui fait cela... ????

J'ai essayé aussi la fonction Format, mais je n'y arrive pas... peut être je fais quelque chose de pas correct... 

Bref je veux seulement être éclairé un peu...

Tanks.                 

7 réponses

cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
5 juin 2006 à 20:29
Je ne suis pas sur d'avoir tout compris.

Ou se situe ton problème exactement ? dans la longueur des chaines lorsque tu effectue ton traitement dans VB, ou au contraire sur l'aspect graphique lorsque tu affiche tes chaines à l'écran.

La seule influence de la police se situe lors de l'affichage à l'écran (aspect graphique). Effectivement la quasi totalité des polices de windows sont dites à espacement proportionel, c'est à dire que l'emplacement occupé à l'écran par un caractère dépendra du caractère lui-même. Ainsi un "i" occupera un emplacement moins large qu'un "w". Il existe quelque rare police à espacement fixe comme Courrier, Courrier New (celle des sources de VB6, normalement), ou encore Terminal.

Times New Roman, Tahoma, Arrial, sont des polices à espacement proportionnel. Donc 25 espaces seront graphiquement plus court que 25 "w". Ces polices là ne permettent pas de faire de l'affichage en colonnes.

<hr /># Le partage est notre force #
3
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
5 juin 2006 à 18:43
Tout simplement dans la déclaration de ta chaine :

Dim TaChaine as string * 25

<hr /># Le partage est notre force #
0
cs_MagDix Messages postés 532 Date d'inscription lundi 5 juin 2006 Statut Membre Dernière intervention 6 octobre 2012 1
5 juin 2006 à 19:17
Salut... merci pour la réponse 

Mais j'ai encore des difficultées....
J'en ai pas parlé car je ne croyais pas que cela pouvais créer un problème. Le texte qui s'affcihe dans mon Listbox provient d'une table access et tous les mots, que j'impose 35 caractètes, se déplace. Le prob. est qu'il y en a qui se déplace plus que d'autre.

Le problème peut-il venir du Listbox, de ADO ???

P.S. un Listview ne peut être utilisé.
0
cs_MagDix Messages postés 532 Date d'inscription lundi 5 juin 2006 Statut Membre Dernière intervention 6 octobre 2012 1
5 juin 2006 à 20:10
Je suis entrain de réfléchir...

Est ce que le problème peut venir à cause de la police  ???

Exist-il une police qui prend, pour chaque lettre de l'alphabet, les mêmes espaces peut importe la lettre ou le type de caractère ?????

J'ai essayé Time New Roman, Tohama, Arial et ca ne fonctionne pas...

P.S. dans ma base access les mots qui s'y trouvent n'ont aucun espaces apres... bref Access n'est pas en trouble...  mais d'où provinet le problème ????
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 78
5 juin 2006 à 20:24
Salut
Le problème vient bien de la Police. "Time New Roman" fonctionne - tous les caractères ont le même espacement.
Une ListBox n'est pas faite pour afficher les textes sous forme de colonne.
Utilise plutôt une ListView en mode Report.
Il existe des sources qui proposent des ListBox à plusieurs colonnes - Cherche parmi les sources avec "ListBox multicolonnes"

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Champion du monde de boule de cristal - 2005
Le savoir est la seule matière qui s'accro
0
cs_MagDix Messages postés 532 Date d'inscription lundi 5 juin 2006 Statut Membre Dernière intervention 6 octobre 2012 1
5 juin 2006 à 21:11
merci à vous deux....

Oui effectivement c'était pour l'affichage mon problème...

Et je ne peux pas utiliser de ListView...

bye
0
cs_MagDix Messages postés 532 Date d'inscription lundi 5 juin 2006 Statut Membre Dernière intervention 6 octobre 2012 1
6 juin 2006 à 13:00
Salut c'est encore moi...

J'ai utilisé la police Courrier New  et l'affcihe est vraiment plus facile à mettre en colone... c'est "chaint" mais j'y arrive.

Problème....  l'impression...

J'ai certaine ligne qui son décalées vers la droite  de 1 ou deux caractères...

Est-ce qu'il y a une facon de corriger le problème ou bien c'est un problème lié à l'imprimante et à la sorte de police que j'utilise ???
0
Rejoignez-nous