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

Signaler
Messages postés
532
Date d'inscription
lundi 5 juin 2006
Statut
Membre
Dernière intervention
6 octobre 2012
-
Messages postés
532
Date d'inscription
lundi 5 juin 2006
Statut
Membre
Dernière intervention
6 octobre 2012
-
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

Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
36
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 #
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
36
Tout simplement dans la déclaration de ta chaine :

Dim TaChaine as string * 25

<hr /># Le partage est notre force #
Messages postés
532
Date d'inscription
lundi 5 juin 2006
Statut
Membre
Dernière intervention
6 octobre 2012
1
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é.
Messages postés
532
Date d'inscription
lundi 5 juin 2006
Statut
Membre
Dernière intervention
6 octobre 2012
1
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 ????
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
70
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
Messages postés
532
Date d'inscription
lundi 5 juin 2006
Statut
Membre
Dernière intervention
6 octobre 2012
1
merci à vous deux....

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

Et je ne peux pas utiliser de ListView...

bye
Messages postés
532
Date d'inscription
lundi 5 juin 2006
Statut
Membre
Dernière intervention
6 octobre 2012
1
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 ???