Page 1 sur 1

[AXE]Longueur d'une chaine de caractères en pixel

Message non luPosté: 10 Sep 2016, 15:38
de Ti64CLi++
Bonjour, j'ai créer une petite fonction appelé DimStr qui me sert à calculer quel taille en pixel fait une chaine de caractère se terminant par 0 (ex: "TEST"[00]->Str1). Les espaces à la fin des caractères sont pris en compte.
Seulement, ça ne marche pas comme je voudrais. Par exemple, pour la chaine de caractères "Salut, comment ca va?!"[00], il me renvoie comme longueur 19 alors que la longueur devrait être 77.
Voici mon code:
Show/Hide spoilerAfficher/Masquer le spoiler
Code: Tout sélectionner
.AA
ClrHome
"Salut, comment ça va?!"[00]→Str1
Disp DimStr(Str1)Dec,
Repeat getKey(15)
End
Return

Lbl DimStr
0→r₃
For(r₂,0,longueur(r₁)-1
If dansChaîne("abcdeghjknopqruvxy?0123456789­-+/^{}θ…_%↑↓×\ABCDEFGHIJKLMNOPQRSTUVWXYZθ"[00],{r₁+r₂})
r₃+4→r₃
End
If 32={r₁+r₂}
r₃++
End
If dansChaîne("i.:!"[00],{r₁+r₂})
r₃+2→r₃
End
If dansChaîne("flst()[],;"[00],{r₁+r₂})
r₃+3→r₃
End
If dansChaîne("z&~"[00],{r₁+r₂})
r₃+5→r₃
End
If dansChaîne("mw*π$#@"[00],{r₁+r₂})
r₃+6→r₃
End
End
r₃
Return

Si quelqu'un pouvait m'aider, je lui en serait très reconnaissant ^^
Merci

Re: [AXE]Longueur d'une chaine de caractères en pixel

Message non luPosté: 10 Jan 2017, 07:44
de kindermoumoute
"dansChaîne()" prend un pointeur en deuxième argument.

Code: Tout sélectionner
.AA
ClrHome
"Salut, comment ça va?!"[00]→Str1
Disp DimStr(Str1)Dec,
Repeat getKey(15)
End
Return

Lbl DimStr
0→r₃
longueur(r₁)→r₂
For(r₂
If 32={r₁}
r₃++
ElseIf dansChaîne("i.:!"[00],r₁)
r₃+2→r₃
ElseIf dansChaîne("flst()[],;"[00],r₁)
r₃+3→r₃
ElseIf dansChaîne("z&~"[00],r₁)
r₃+5→r₃
ElseIf dansChaîne("mw*π$#@"[00],r₁)
r₃+6→r₃
Else
r₃+4→r₃
End
r₁++
End
r₃
Return

Re: [AXE]Longueur d'une chaine de caractères en pixel

Message non luPosté: 10 Jan 2017, 13:50
de Ti64CLi++
Ah, kindermoumoute ^^
En fait, j'ai oublié de préciser, mais le topic est résolu, je vais modifier ^^

Désolé du double post, mais @kindermoumoute est-ce que tu pourrais passer sur le sujet [Big tuto]Langage calculatrices TI (z80) L'axe Parser sur open classroom?

Double post combiné par TheMachine02