GETKEY

Aus C64-Wiki
Wechseln zu: Navigation, Suche
GETKEY
Format: GETKEY <Variable>[, <Variable>...]
Parameter
<Variable>: Variable beliebigen Typs zur Übernahme des eingegebenen Zeichens
Einordnung
Typ: Anweisung
Kontext: Ein/Ausgabe
Aufgabe: Auf Tastendruck warten und einzelne Zeichen von der Tastatur einlesen
Abkürzung: gEkE
Verwandte Befehle
GET, INPUT

Anmerkung: Dieser Artikel beschreibt den BASIC-Befehl GETKEY ab Commodore BASIC V3.5 oder höher


Der Befehl GETKEY wartet auf Tastendrücke und liest die einzelnen Zeichen von der Tastatur in Zeichenketten-, Fließkomma- oder Ganzzahlvariablen ein. Es werden immer so viele Tastendrücke eingelesen, wie Variablen angegeben sind. Mindestens eine Variable muss angegeben sein, sonst wird ein ?SYNTAX ERROR ausgegeben.
Der Befehl ist nicht im Direktmodus verwendbar und meldet einen ?ILLEGAL DIRECT ERROR.

Wie beim Befehl GET ist auch bei GETKEY die Verwendung von numerischen Variablen nicht empfohlen, da eine Fehleingabe zum Abbruch mit Fehlermeldung ?TYPE MISMATCH ERROR führt. Falls sie doch verwendet werden, akzeptiert GETKEY neben den Ziffern 0 bis 9 noch folgende Zeichen, die immer den Wert Null erzeugen, als Eingabe: Die Vorzeichen ' + ' und '  ', den Dezimalpunkt und das Exponentialsymbol ' E ' sowie Doppelpunkt und Komma. Bei den letzteren beiden wird zusätzlich auf dem Bildschirm ?EXTRA IGNORED ausgegeben, ohne dass das Programm aber unterbrochen wird (ähnlich wie beim INPUT-Befehl). Sind mehrere numerische Variablen angegeben, gibt es die Nebenwirkung, dass ein Komma das Einlesen zweier Variablen und ein Doppelpunkt eine Variable überspringt und die entsprechenden Variablen auf den Wert 0 erhalten.

GETKEY ist eigentlich kein einzelner Befehl (und damit kein eigenständiges Schlüsselwort), sondern setzt sich aus den Anweisungen GET und KEY zusammen und kann daher auch getrennt als GET KEY geschrieben werden.

Beispiele[Bearbeiten]

10 PRINT "WILLST DU DAS WIRKLICH?! (J/N)"
20 GETKEY A$:IF INSTR("JN",A$)=0 THEN 20
30 IF A$="J" THEN PRINT "DU HAST ES SO GEWOLLT!":ELSE PRINT "KLUGE ENTSCHEIDUNG!"

Dieses Beispiel gibt eine Sicherheitsabfrage aus, wartet dann auf die Eingabe von J oder N und gibt anschließend anhand der Benutzereingabe einen Text aus.