Omnimaga

Calculator Community => [FR] Section Francophone => [FR] Programmation Axe Parser => Topic started by: andrei210 on October 28, 2011, 08:59:46 am

Title: output n'affiche rien
Post by: andrei210 on October 28, 2011, 08:59:46 am
Bonjour a tous, je débute l'Axe Parser et je rencontre déjà un problème dans mon programme :
j'ai cette ligne de code dans une de mes fonctions : "OutPut(r1,r2,B>Dec" mais B n'est pas affiché.
Lorsque je remplace R1 par 3, il réussi a afficher B. J'ai donc cru que c'étais R1 le problème mais pourtant lorsque je remplace simplement B>Dec par "TEXT" il affiche le texte.
Je ne comprends vraiment pas ce qui cloche donc si quelqu'un a une idée je sui preneur.

Merci d'avance =)

[EDIT] ah oui j'oubliais lorsque je remplace le >Dec par un >Char il me met bien un symbole... C'est vraiment incompréhensible  :banghead:

[EDIT2] Apres quelques tests j'ai decouvert que lorsque OutPut affichais un nombre et non un texte celui-ci etais toujours decalé de 4 vers la droite. Quelqu'un peut m'expliquer pourquoi ?
Title: Re: output n'affiche rien
Post by: Hayleia on October 28, 2011, 09:52:37 am
Tout d'abord, bienvenue sur omnimaga ! Tu peux te présenter (en anglais) par ici (http://www.omnimaga.org/index.php?board=10.0)

[EDIT2] Apres quelques tests j'ai decouvert que lorsque OutPut affichais un nombre et non un texte celui-ci etais toujours decalé de 4 vers la droite. Quelqu'un peut m'expliquer pourquoi ?
IIRC, c'est à cause de la routine DispHL. Tout nombre de 16 bits est compris entre 0 et 65535, et comprend donc moins de 5 chiffres. Lorsque tu l'affiche avec Output(X,Y,A>Dec), il le place dans un bloc de 5 cases qui commence à (X,Y). En d'autres mots, si tu affiches 10000, il sera affiché au bon endroit. 1000 sera décalé d'un carreau, etc.

Pour le reste, je ne sais pas :-/
Est-tu sûr d'avoir mis Output(X,Y et pas Output(Y,X , avec X et Y compris entre 0 et 7 ?
Title: Re: output n'affiche rien
Post by: andrei210 on October 28, 2011, 09:58:45 am
merci pour ta réponse rapide =)
En fais finalement il n'y a plus de problème car dans mon cas, R1 était toujours égal a 13 d'où le fais qu'il n'affiche pas le a cause du décalage.

Mais ça entraine une autre question : comment les programmeurs font lorsqu'ils ne savent pas si la valeur a afficher sera plutôt grande (12345) ou petite (12) ?
Title: Re: output n'affiche rien
Post by: Hayleia on October 28, 2011, 10:14:55 am
merci pour ta réponse rapide =)
De rien :)

Mais ça entraine une autre question : comment les programmeurs font lorsqu'ils ne savent pas si la valeur a afficher sera plutôt grande (12345) ou petite (12) ?
Dans mon cas, j'utilise toujours Text au lieu de Output. Et pour utiliser la grande police avec Text, on utilise Fix 1. Du coup, si tu mets:
   Fix 1
   Text(X,Y,242>Dec)
   Fix 0

Le programme affichera 242 en (X,Y), et pas en (X+2,Y), et ce en grande police, comme si tu avais utilisé Output. Le Fix 0 après sert juste à remettre Text en mode petite police, Mais si tu a plusieurs chiffres à afficher, mets les avant le Fix 0 (ou ne mets pas de Fix 0).
Attention néanmoins, Text ne prend pas des valeurs de X et Y comprises entre 0 et 7, mais entre 0 et 58 pour X, et 0 et ~80 pour Y (j'ai oublié la borne supérieure pour Y).