Je galère avec inkey$

Ici, on fait dans le petit, le LCD qui déchire sa race, on y cause même calculatrices quand on est en manque !

Modérateur : Politburo

Répondre
Céline
Fonctionne à 300 bauds
Fonctionne à 300 bauds
Messages : 183
Inscription : 23 mars 2014 14:11

Je galère avec inkey$

Message par Céline » 10 mars 2016 18:39

Bonjour,

je ne m'en sors pas avec la fonction inkey$.

Code : Tout sélectionner

10 A$=INKEY$:IF A$="" THEN GOTO 10
20 IF A$="O" THEN PRINT "OUI":GOTO 40
30 PRINT "NON"
40 END
Ca marche très bien sur Casio PB770, c'est plutôt aléatoire sur Sharp pc-1262 avec des bidouillages avec WAIT que je ne maitrise pas trop et des trucs bizarres si je commence la ligne 10 par "M": Et sur Sharp pc-1500 je n'arrive à rien.
Help !!!
TI-30 Galaxy
fx-180P, fx-4000P
HP 11c, 12c, 12c le, 15c, 15c le
HP 32s, 32s ii, 42s, 17b ii, 30b, 35s
HP 28s, 48s, 48sx, 48g, 50g, prime

Avatar de l’utilisateur
Marge
Fonctionne à 14400 bauds
Fonctionne à 14400 bauds
Messages : 5208
Inscription : 01 oct. 2008 14:39
Localisation : En bas, tout au fond à gauche.

Re: Je galère avec inkey$

Message par Marge » 10 mars 2016 18:45

Je n'ai plus trop ça en tête, mais sur le 1403 de Sharp il y a, de mémoire, un problème avec cette fonction qui est aléatoire (elle peut fonctionner ou ne pas fonctionner si on accède au programme par [DEF] + une touche). C'est mentionné dans le manuel.
Je ne sais si ça peut t'aider...
3 hommes, 3 demis, un 3a... Magnéto, Serge !

« Boris », c'est juste Maurice enrhumé.

Céline
Fonctionne à 300 bauds
Fonctionne à 300 bauds
Messages : 183
Inscription : 23 mars 2014 14:11

Re: Je galère avec inkey$

Message par Céline » 10 mars 2016 18:58

Bon c'est déjà une première réponse. def et inkey$ semblent aussi faire mauvais ménage sur pc-1262. Merci Marge.
Et sur pc-1500 ça marche comment ? :(
TI-30 Galaxy
fx-180P, fx-4000P
HP 11c, 12c, 12c le, 15c, 15c le
HP 32s, 32s ii, 42s, 17b ii, 30b, 35s
HP 28s, 48s, 48sx, 48g, 50g, prime

Avatar de l’utilisateur
charognard
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 4411
Inscription : 06 juin 2007 19:28
Localisation : Indre et loire
Contact :

Re: Je galère avec inkey$

Message par charognard » 10 mars 2016 19:20

Bogué le SHARP ..... Bande d'incultes ;)

Sur certain SHARP le INKEY$ intercepte les codes ASCII des touches et notamment celle CHR$(13) qui correspond à la touche [ENTER]
Ton code fonctionne super bien en fait mais lorsque du lance ton programme si tu reste appuyé sur [ENTER] il passe en 30 et t'affiche 'NON'

voilà ce qu'il faut faire :

Code : Tout sélectionner

10 IF INKEY$ <>"" THEN 10
20 A$=INKEY$:IF A$="" THEN 20
30 IF A$="O" PRINT "OUI":END
30 PRINT "NON"
Explication :
----------------
le IF INKEY$ <>"" THEN 10 vérifie qu'une touche n'est actuellement pas appuyée et vide le buffer


J'avais bien galéré sur ce problème, il y a plus de 30ans et ça met resté en mémoire ;)

Pour la touche DEF le problème est le même, la touche après le DEF est interceptée si appui pas suffisamment rapide

Céline
Fonctionne à 300 bauds
Fonctionne à 300 bauds
Messages : 183
Inscription : 23 mars 2014 14:11

Re: Je galère avec inkey$

Message par Céline » 10 mars 2016 19:31

Oh yess ça marche !
charognard a écrit :J'avais bien galéré sur ce problème, il y a plus de 30ans et ça met resté en mémoire
Merci qui pour ce petit souvenir nostalgique ? :wink:
TI-30 Galaxy
fx-180P, fx-4000P
HP 11c, 12c, 12c le, 15c, 15c le
HP 32s, 32s ii, 42s, 17b ii, 30b, 35s
HP 28s, 48s, 48sx, 48g, 50g, prime

Avatar de l’utilisateur
Marge
Fonctionne à 14400 bauds
Fonctionne à 14400 bauds
Messages : 5208
Inscription : 01 oct. 2008 14:39
Localisation : En bas, tout au fond à gauche.

Re: Je galère avec inkey$

Message par Marge » 10 mars 2016 19:46

Il n'empêche que ce dysfonctionnement est mentionné dans le manuel du PC-1403. Tant mieux si ce bout de programme fonctionne.
3 hommes, 3 demis, un 3a... Magnéto, Serge !

« Boris », c'est juste Maurice enrhumé.

Avatar de l’utilisateur
charognard
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 4411
Inscription : 06 juin 2007 19:28
Localisation : Indre et loire
Contact :

Re: Je galère avec inkey$

Message par charognard » 10 mars 2016 19:58

Marge a écrit :Il n'empêche que ce dysfonctionnement est mentionné dans le manuel du PC-1403. Tant mieux si ce bout de programme fonctionne.
Page 176 je suppose !

avec l'exemple DEF Z qui intercepte le Z du DEf sur inkey
c'est ce que je dis mon code attend qu'il n'y ai plus de pression de touche donc DEF fonctionne très bien.

Exemple si j'ajoute le DEF Z mon code fonctionne nickel

Code : Tout sélectionner

10 "Z" IF INKEY$ <>"" THEN 10
20 A$=INKEY$:IF A$="" THEN 20
30 IF A$="O" PRINT "OUI":END
30 PRINT "NON"

Avatar de l’utilisateur
Marge
Fonctionne à 14400 bauds
Fonctionne à 14400 bauds
Messages : 5208
Inscription : 01 oct. 2008 14:39
Localisation : En bas, tout au fond à gauche.

Re: Je galère avec inkey$

Message par Marge » 10 mars 2016 20:03

Oui, oui, oui. :wink:
3 hommes, 3 demis, un 3a... Magnéto, Serge !

« Boris », c'est juste Maurice enrhumé.

Avatar de l’utilisateur
pir2
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 4535
Inscription : 31 oct. 2006 16:08
Localisation : 67310 Westhoffen
Contact :

Re: Je galère avec inkey$

Message par pir2 » 10 mars 2016 20:11

Et avec le DEF X, on peut mettre un AREAD pour lire immédiatement la valeur d'avant le lancement (je sais, ce n'est pas le même besoin ;) )

Code : Tout sélectionner

10 "X" AREAD A$
20 IF A$="OUI" GOTO 100
30 PRINT A$
40 GOTO 110
100 PRINT "JE FAIS CE QUE JE VEUX DU OUI"
110 END
(code tapé de tête)
Image
Image

Avatar de l’utilisateur
charognard
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 4411
Inscription : 06 juin 2007 19:28
Localisation : Indre et loire
Contact :

Re: Je galère avec inkey$

Message par charognard » 10 mars 2016 20:30

pir2 a écrit :Et avec le DEF X, on peut mettre un AREAD pour lire immédiatement la valeur d'avant le lancement (je sais, ce n'est pas le même besoin ;) )

Code : Tout sélectionner

10 "X" AREAD A$
20 IF A$="OUI" GOTO 100
30 PRINT A$
40 GOTO 110
100 PRINT "JE FAIS CE QUE JE VEUX DU OUI"
110 END
(code tapé de tête)
Le AREAD n'est qu'un INPUT inversé
il fonctionne avec le mode DEF et est exclusif aux SHARP
Une instruction permettant la création de fonctions uniquement mono paramètres.


à noter que le retour d'un PRINT peut être pris en paramètre

Exemple :

Code : Tout sélectionner

10 "A" AREAD A
20 PRINT A+2
2
[DEF] A
[DEF] A
[DEF] A

donnera 8

Répondre

Revenir vers « Tous les Pockets »