CPC Rulez https://cpcrulez.fr/forum/ |
|
Bug or not ? https://cpcrulez.fr/forum/viewtopic.php?f=4&t=6316 |
Page 1 sur 1 |
Auteur : | velus [ 12 Mars 2020, 05:58 ] |
Sujet du message : | Bug or not ? |
Hehe Le but c'est de choisir 1 ou 2 ça marche mais quand j'appuie sur le &. ERROR !!!! Aucun soucis avec les autres touches ! 10 ?"Ca ne va pas quand on pousse &. Pourquoi ?" 20 i$=(inkey$):if val (i$)<1 or val(i$)>2 then 20 |
Auteur : | Megachur [ 12 Mars 2020, 07:19 ] |
Sujet du message : | Re: Bug or not ? |
Hello une réponse rapide. je pense que cela vient de la conversion du char en val par VAL(i$) il suffit de faire un print VAL("&") pour avoir un "Type mismatch" donc à l'inverse je propose de rester en char et plutôt de convertir en char les valeurs de comparaisons : Code : 20 i$=INKEY$:IF i$<CHR$(49) or i$>CHR$(51) THEN 20 cela semble marcher -> BASIC ! |
Auteur : | marcel [ 12 Mars 2020, 14:01 ] |
Sujet du message : | Re: Bug or not ? |
par principe je ne compare que ce que je souhaite détecter Code : 10 a$=inkey$
20 if a$="1" then goto bidule : REM ou gosub 30 if a$="2" then goto truc : REM ou gosub 40 goto 10 |
Auteur : | velus [ 12 Mars 2020, 16:16 ] |
Sujet du message : | Re: Bug or not ? |
Je suis d accord mais pourquoi seulement une erreur et une seule erreur avec cette fameuse touche &. S agit il d un bug je répète ma question |
Auteur : | hERMOL [ 12 Mars 2020, 20:33 ] |
Sujet du message : | Re: Bug or not ? |
T'as le même retour d'erreur avec ?val("-") ou ?val(".") manuel de l'utilisateur a écrit : FONCTION : Fournit la VALeur numérique du ou des premiers caractères (y compris le signe négatif et le point décimal) de la < chaîne alphanumérique > indiquée.
On obtient la valeur 0 lorsque le premier caractère de la chaîne n’est pas un chiffre. Si le signe « - » apparaît en premier caractère ou si celui-ci est un point décimal suivi d'un caractère non numérique, le message d’erreur «Type mismatch >» (erreur de frappe) (13) s’affiche à l’écran. Mots clés associés : STR$ |
Auteur : | Megachur [ 12 Mars 2020, 21:01 ] |
Sujet du message : | Re: Bug or not ? |
velus a écrit : Je suis d accord mais pourquoi seulement une erreur et une seule erreur avec cette fameuse touche &. S agit il d un bug je répète ma question possible que le & indique un nombre hexadécimal et du coup VAL("&") provoque un plantage car & n'est pas une valeur caractère autorisé... après vérification en basic, oui c'est ça... si tu tape print VAL("&10") on obtient 16 ! les meilleurs hypothèses sont celles qu'on vérifie ! |
Auteur : | marcel [ 13 Mars 2020, 13:36 ] |
Sujet du message : | Re: Bug or not ? |
En fait le caractère est autorisé mais le mismatch vient qu'il est employé seul alors que le parser attend au minimum un chiffre ou un caractère de a/A à f/F ensuite idem pour le - il s'attend à une valeur numérique derrière, éventuellement un & car on doit pouvoir faire un VAL d'une valeur hexa négative sans souci |
Auteur : | hERMOL [ 15 Mars 2020, 10:03 ] |
Sujet du message : | Re: Bug or not ? |
La définition du "Type mismatch" est pourtant claire ... Citer : 13 Type mismatch (types de variable ne correspondant pas) On a donné une valeur numérique pour une chaîne alphanumérique ou vice-versa ou un nombre non valable a été découvert par une commande READ ou INPUT. c'est pas bug du basic , mais bien un bug dans la gestion des entrées clavier de ton code! |
Auteur : | marcel [ 15 Mars 2020, 12:35 ] |
Sujet du message : | Re: Bug or not ? |
On peut quand même admettre que la notice n'a pas détaillé le cas du "&" Par contre elle mentionne aussi l'usage du "." Bref, la fonction n'est pas à toute épreuve comme un bon "atoi" en C |
Page 1 sur 1 | Le fuseau horaire est UTC+1 heure |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |