Avertissement :Il s'agit d'une page optimisée pour la navigation mobile. Voir la
page originale.
Longueur
Samos le 01/09/2012 à 12:45
Salut,
Je cherche un moyen afin de connaître la taille d'un d'un caractère en case (Ex: "Output("=7)blg_flg le 01/09/2012 à 14:30
Tu veux dire sans compter?
Il faudrait faire, je pense, un programme qui utilise quelques Pxl-Test.
J'en fais un si j'ai le temps.

Persalteas le 01/09/2012 à 16:23
la taille d'un token ?
Non c'est pas possible. C'est un des défauts... Chaque token TI-80/84+ compte pour 1, quelque soit sa longueur.
ça permet que le curseur saute tout le "output" d'un coup et pas juste le haut.
Tu es obligé de compter avec tes yeux, désolé...
J'imagine que tu as rencontré ce problème en manipulant des chaines.blg_flg le 01/09/2012 à 16:36
Je pense qu'il est possible de stocker un token dans une chaîne, puis de l'afficher avec Text(. Ensuite on pourrait compter le nombre de caractères avec des Pxl-Test.
Bien que nécessitant un code assez long pour un but aussi simple, cela devrait être réalisable, non?Sangohan38 le 01/09/2012 à 17:50
Si tu stock le token dans une chaîne, utilise dans ce cas la fonction dim afin d'avoir directement la longueur.
Sangohan38blg_flg le 01/09/2012 à 18:17
Je pense que c'est la fonction longueur( (ou lenght( en anglais il me semble) qu'il faut utiliser pour les chaînes et non dim(, utilisable pour les listes.
Mais comme l'a expliqué persalteas, un token a une longueur de 1, quelque soit le nombre de caractères.
Donc ça ne doit pas être la solution.linkakro le 01/09/2012 à 18:18
Si tu veux le connaître par le biais d'un programme, je ne pense pas que les pixels soient utiles : la plupart des caractères occupent la même place mais pas tous (en particulier les parenthèses).
EDIT: je pensais calculer les caractères à partir de la mesure globale, ce qui n'est pas viable
La fonction longueur() compte le nombre de Tokens dans une chaîne, pas le nombre de caractère d'un Token.
Je crois même que c'est impossible. EDIT : Si, il faut changer de méthode.blg_flg le 01/09/2012 à 18:24
Je pensais que si on se référait aux espaces entre les caractères (quelque soit leur longueur) on devrait réussir, avec pas mal de For( pour vérifier que l'espace est bien d'un pixel sur toute la hauteur d'un caractère, vu que je ne crois pas qu'il y ait des caractères dans un token qui soient constitués de pixels non "reliés entre eux".Samos le 01/09/2012 à 18:30
Mon but était de faire défiler du texte avec un pointeur qui défile en même temps se plaçant au début de chaque token.
Code
Text(1,1,"Mot
For(x,1,30
For(y,1,8
If pxl-test(y,x
(on arrondi à la valeur supérieure divisible par 6)
End
End
Le seul problème c'est que ça va être très long
linkakro le 01/09/2012 à 20:26
Je pensais mesurer la largeur puis calculer le nombre de caractères.
Mais détecter les espaces de fin de caractère permettrait de les compter.
Code
ClrDraw
Text(0,1,"MOT
DelVar LFor(X,94,0,-1
0
For(Y,1,5
Ans+pxl-Test(Y,X
End
If Ans and not(L
1->L
If L and not(Ans
L+1->L
End
L
Ce programme est conçu pour ne pas compter les espaces à droite du texte.
Je ne connais pas de caractère qui contienne une colonne vierge, ou tout au moins je n'y pense pas. S'il en existe un alors ce programme est faux.
blg_flg le 01/09/2012 à 20:47
Tu considères que les parenthèses n'ont pas de colonne vierge à la fin?linkakro le 01/09/2012 à 20:57
Si mais je n'avais pas pensé à compter les caractères un par un lorsque j'ai posté mon premier message. (honte à moi ^^') Avertissement :Il s'agit d'une page optimisée pour la navigation mobile. Voir la
page originale.