Le forum (ô combien francophone) des utilisateurs de Powerbuilder.
Bonjour,
voici mon problème
j'ai un string qui contient des tabulations ( "~t" ) et j'aimerai pouvoir connaitre la longueur de ce string mais la longueur correspondante à la longueur du string affiché, pas la longueur en terme de nombre de caractères car dans ce cas "~t" vaut toujours 1
je précise que je connais la valeur de base de la tabulation dans mon contexte (c'est 3) mais donc 3 c'est la valeur Maximum de la tabulation, mais suivant la position dans le string où se trouve la tabulation elle peut valoir 1, 2 ou 3
si j'ai 2 lignes de texte par exemple :
A
1 A
où devant le A j'ai une tabulation (que je sais pas placer ici dans le forum donc j'ai mis des espaces à la place...)
dans la ligne 1 la tabulation vaut 3 et la longueur du string vaut 2 ( tabulation + A)
dans la ligne 2 la tabulation vaut 2 et la longueur du string vaut 3 ( 1 + tabulation + A)
j'ai donc 2 lignes qui finissent au même endroit mais n'ont pas la même longueur.
je ne sais pas si je suis compréhensible ?
existe t'il un moyen / une formule d'obtenir cette info ?
Dernière modification par rincevent (15-02-2013 15:00:50)
Hors ligne
En nombre de pixels, en demandant à windows avec GetTextExtentpoint32() (en fonction de la chaîne, de la police, de la taille, etc...) je peux poster un bout de code qui utilise ça.
Sinon ça risque d'être compliqué. Tu peux toujours faire une boucle sur ta chaîne pour compter les caractères :
- chaque caractère vaut 1
- sauf un tab qui vaut tab_len - (longueur_jusqu_ici % tab_len)
% = modulo
Hors ligne
Merci Seki, t'es vraiment trop fort, j'te kiffe ^^
la boucle et le modulo semblent fonctionner comme je le souhaite
Hors ligne
Hors ligne