Dateneingabe Teil 2

Zu diesem Thema wurde im Kapitel Dateneingabe Teil 1 schon Vorarbeit geleistet.

Hier nochmal die Theorie:
Eingabe durch Auswahl geschieht mittels einmaligem Drückens einer bestimmten Taste. Man muss wissen, dass jede Taste auf dem Taschenrechner eine Zahl hat, an der sie identifiziert werden kann. Diese Zahl nennt man Getkey-Wert. Während des Drückens einer Taste wird an den Rechner weitergeleitet, welche Taste gedrückt wurde. Diese Information ist der Getkey-Wert. Um in einem Programm diesen Getkey-Wert auszulesen, gibt es den Befehl Getkey.
Da der Getkey-Wert nur einen winzigen Augenblick existiert, muss der Befehl Getkey auf Bereitschaft sein und warten, bis eine Eingabe geschehen ist. Dies geschieht mittels einer Schleife, die so lange abläuft, bis eine Taste gedrückt wurde.
Ist eine Taste gedrückt worden, wird die Information ausgewertet.
Wir werden den entsprechenden Code zum besseren Verständnis ausführlich erarbeiten. Zu diesem Thema gibt es bei den Downloads das Skript-1 im cat und cas Format, welches ihr in eure Progs einbauen könnt.

Hier erstmal der Code:

    "Wenn ja, dann F1"
    "Wenn nein, dann F2"
    Do
    GetkeyA
    LpWhile A<>79 And A

    69
    A=79Goto 1
    A=69Goto 2
    Lbl 1
    "Du hast Ja gewählt"
    Stop
    Lbl 2
    "Du hast Nein gewählt"
    Stop

Und hier die Erklärung zum Code:

In den ersten zwei Zeilen wird dem Nutzer klar gemacht, was er überhaupt wählen kann. Mit Do beginnt die fußgesteuerte Do-Schleife. In der Schleife steht der Befehl Getkey, der den Getkeywert abfragt und diesen über den Zuweisungspfeil an die Variable A speichert. Statt A könnt ihr auch eine andere Variable nehmen. In der nächsten Zeile wird die Do-Schleife über die Bedingung geschlossen. In diesem Fall verlangt die Bedingung, dass die Schleife noch mal ablaufen muss, wenn A nicht 79 oder 69 (Getkeywerte für F1 und F2) ist. Somit wird sichergestellt, dass wirklich nur [F1] oder [F2] gewählt wird.
Nun folgt die Auswertung. Wenn A gleich 79 ist, also [F1] gedrückt wurde, sorgt der Jump-Befehl dafür, dass der nach dem Jump-Befehl stehende Befehl, also Goto 1 ausgeführt wird. Wurde nun [F1] gewählt, springt das Programm zur Sprungmarke Lbl 1.
Eure Auswertung kann natürlich auch anders ablaufen, zum Beispiel über eine If-Then-Bedingungsabfrage.
Auch die Bedingung in der fußgesteuerten Do-Schleife kann anders aussehen, wenn ihr zum Beispiel auf den Tastendruck einer beliebigen Taste wartet - weil ihr aus bestimmten Gründen keinen Ausgabebefehl nehmen wollt, muss die Do-Schleife so aussehen:

    Do
    LpWhile Not Getkey

Die Variable und die Auswertung könnt ihr euch also sparen.

Jedenfalls dürfte das Prinzip einer Tastaturabfrage jetzt klar sein. Hier ist jetzt noch eine kleine Grafik, wo ihr die Getkey-Werte für jede Taste seht, [AC/ON] hat keinen Getkey-Wert, weil diese Taste sowas wie der Resetknopf an eurem PC ist.

Übersicht

Für Leute, die die Übersicht nicht dabei haben, hier ein kleines Prog, mit dem ihr die Tasten abfragen könnt:

    Lbl 1
    Locate 1,1,Getkey
    Goto 1
zurück

© 2004-2008 by Jörg Binnewald, V 2.0
esc-now.de