| Longueur |
| Auteur |
Message |
Samos
Autorisation : Membre
Nb de messages : 295
Inscrit le : Lun 14 Mai 2012, 18:51
|
Posté le : Sam 01 Sep 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
Autorisation : Membre
Nb de messages : 646
Inscrit le : Mer 23 Mai 2012, 17:28
|
Posté le : Sam 01 Sep 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
Autorisation : Membre
Nb de messages : 2086
Inscrit le : Sam 23 Jan 2010, 20:09
|
Posté le : Sam 01 Sep 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
Autorisation : Membre
Nb de messages : 646
Inscrit le : Mer 23 Mai 2012, 17:28
|
Posté le : Sam 01 Sep 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
Autorisation : Membre
Nb de messages : 3293
Inscrit le : Sam 31 Déc 2005, 19:48
|
Posté le : Sam 01 Sep 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.
Sangohan38
|
 |
|
| |
blg_flg
Autorisation : Membre
Nb de messages : 646
Inscrit le : Mer 23 Mai 2012, 17:28
|
Posté le : Sam 01 Sep 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
Autorisation : Membre
Nb de messages : 3738
Inscrit le : Lun 19 Oct 2009, 21:25
|
Posté le : Sam 01 Sep 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.
---------------------- ti82statfr: 2008, inscrit: 2009, ti84pocketfr: noël2011, ti30xbmultiview: iut 2012-2014
Perfectionniste, manque tact. Pas le temps de tout publier depuis 2011. Répond toujours aux questions. (rédigé juin 2014)
Pour tout le monde et surtout les débutants, quelques-uns des articles courants :
*Traductions Algorithmie/Ti-Basic.
*Caractères spéciaux sur Tout82
Les défauts du TI-Basic : Goto_versus_algo et DelVar/End/Lbl/guillemet/store |
 |
|
| |
blg_flg
Autorisation : Membre
Nb de messages : 646
Inscrit le : Mer 23 Mai 2012, 17:28
|
Posté le : Sam 01 Sep 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
Autorisation : Membre
Nb de messages : 295
Inscrit le : Lun 14 Mai 2012, 18:51
|
Posté le : Sam 01 Sep 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
Autorisation : Membre
Nb de messages : 3738
Inscrit le : Lun 19 Oct 2009, 21:25
|
Posté le : Sam 01 Sep 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.
---------------------- ti82statfr: 2008, inscrit: 2009, ti84pocketfr: noël2011, ti30xbmultiview: iut 2012-2014
Perfectionniste, manque tact. Pas le temps de tout publier depuis 2011. Répond toujours aux questions. (rédigé juin 2014)
Pour tout le monde et surtout les débutants, quelques-uns des articles courants :
*Traductions Algorithmie/Ti-Basic.
*Caractères spéciaux sur Tout82
Les défauts du TI-Basic : Goto_versus_algo et DelVar/End/Lbl/guillemet/store |
 |
|
| |
blg_flg
Autorisation : Membre
Nb de messages : 646
Inscrit le : Mer 23 Mai 2012, 17:28
|
Posté le : Sam 01 Sep 2012, 20:47
|
|
|
Tu considères que les parenthèses n'ont pas de colonne vierge à la fin?
|
 |
|
| |
linkakro
Autorisation : Membre
Nb de messages : 3738
Inscrit le : Lun 19 Oct 2009, 21:25
|
Posté le : Sam 01 Sep 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 ^^')
---------------------- ti82statfr: 2008, inscrit: 2009, ti84pocketfr: noël2011, ti30xbmultiview: iut 2012-2014
Perfectionniste, manque tact. Pas le temps de tout publier depuis 2011. Répond toujours aux questions. (rédigé juin 2014)
Pour tout le monde et surtout les débutants, quelques-uns des articles courants :
*Traductions Algorithmie/Ti-Basic.
*Caractères spéciaux sur Tout82
Les défauts du TI-Basic : Goto_versus_algo et DelVar/End/Lbl/guillemet/store |
 |
|
| |