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 :winner: :D !

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(".") :cow:

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 ;-) ! :magic: :winner: :biere:

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/