Author Topic: output n'affiche rien  (Read 2531 times)

0 Members and 1 Guest are viewing this topic.

Offline andrei210

  • LV1 Newcomer (Next: 20)
  • *
  • Posts: 12
  • Rating: +0/-0
    • View Profile
output n'affiche rien
« 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 ?
« Last Edit: October 28, 2011, 09:42:21 am by andrei210 »

Offline Hayleia

  • Programming Absol
  • Coder Of Tomorrow
  • LV12 Extreme Poster (Next: 5000)
  • ************
  • Posts: 3367
  • Rating: +393/-7
    • View Profile
Re: output n'affiche rien
« Reply #1 on: October 28, 2011, 09:52:37 am »
Tout d'abord, bienvenue sur omnimaga ! Tu peux te présenter (en anglais) par ici

[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 ?
« Last Edit: October 28, 2011, 10:16:12 am by Hayleia »
I own: 83+ ; 84+SE ; 76.fr ; CX CAS ; Prizm ; 84+CSE
Sorry if I answer with something that seems unrelated, English is not my primary language and I might not have understood well. Sorry if I make English mistakes too.

click here to know where you got your last +1s

Offline andrei210

  • LV1 Newcomer (Next: 20)
  • *
  • Posts: 12
  • Rating: +0/-0
    • View Profile
Re: output n'affiche rien
« Reply #2 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) ?

Offline Hayleia

  • Programming Absol
  • Coder Of Tomorrow
  • LV12 Extreme Poster (Next: 5000)
  • ************
  • Posts: 3367
  • Rating: +393/-7
    • View Profile
Re: output n'affiche rien
« Reply #3 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).
« Last Edit: October 28, 2011, 10:15:31 am by Hayleia »
I own: 83+ ; 84+SE ; 76.fr ; CX CAS ; Prizm ; 84+CSE
Sorry if I answer with something that seems unrelated, English is not my primary language and I might not have understood well. Sorry if I make English mistakes too.

click here to know where you got your last +1s