VB6 Donner une taille fixe à une chaine de caractère [Résolu]

cs_MagDix 532 Messages postés lundi 5 juin 2006Date d'inscription 6 octobre 2012 Dernière intervention - 5 juin 2006 à 18:38 - Dernière réponse : cs_MagDix 532 Messages postés lundi 5 juin 2006Date d'inscription 6 octobre 2012 Dernière intervention
- 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.                 
Afficher la suite 

Votre réponse

7 réponses

Meilleure réponse
cs_casy 7745 Messages postés mercredi 1 septembre 2004Date d'inscription 24 septembre 2014 Dernière intervention - 5 juin 2006 à 20:29
3
Merci
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 #

Merci cs_casy 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 83 internautes ce mois-ci

Commenter la réponse de cs_casy
cs_casy 7745 Messages postés mercredi 1 septembre 2004Date d'inscription 24 septembre 2014 Dernière intervention - 5 juin 2006 à 18:43
0
Merci
Tout simplement dans la déclaration de ta chaine :

Dim TaChaine as string * 25

<hr /># Le partage est notre force #
Commenter la réponse de cs_casy
cs_MagDix 532 Messages postés lundi 5 juin 2006Date d'inscription 6 octobre 2012 Dernière intervention - 5 juin 2006 à 19:17
0
Merci
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é.
Commenter la réponse de cs_MagDix
cs_MagDix 532 Messages postés lundi 5 juin 2006Date d'inscription 6 octobre 2012 Dernière intervention - 5 juin 2006 à 20:10
0
Merci
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 ????
Commenter la réponse de cs_MagDix
cs_Jack 14010 Messages postés samedi 29 décembre 2001Date d'inscription 28 août 2015 Dernière intervention - 5 juin 2006 à 20:24
0
Merci
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
Commenter la réponse de cs_Jack
cs_MagDix 532 Messages postés lundi 5 juin 2006Date d'inscription 6 octobre 2012 Dernière intervention - 5 juin 2006 à 21:11
0
Merci
merci à vous deux....

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

Et je ne peux pas utiliser de ListView...

bye
Commenter la réponse de cs_MagDix
cs_MagDix 532 Messages postés lundi 5 juin 2006Date d'inscription 6 octobre 2012 Dernière intervention - 6 juin 2006 à 13:00
0
Merci
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 ???
Commenter la réponse de cs_MagDix

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.