Tips & Tricks

Leichte Eingabe

Die Benutzerfreundlichkeit eines Programmes hängt von der Behandlung der Eingabe beziehungsweise Fehleingabe ab. Dieses Programm beseitigt viele damit verbundene Probleme.

Das aufgeführte Programm (Listing 1) 2, das eine echte Hilfe beim Erstellen von benutzerfreundlichen Programmen darstellt, ist eine Basic-Eingaberoutine, das heißt, es ist in Basic geschrieben und ersetzt den normalen INPUT-Befehl.

Es ist in der Handhabung sehr einfach gehalten und dabei noch recht kurz.

Der Benutzer muß dabei nur IN$ und LT vorbesetzen (siehe Variablenliste). In der Routine wird als erstes IN$ ausgegeben. Dies hat den Vorteil, daß Standardantworten vorgegeben werden können. Danach werden die für die Darstellung des Cursors notwendigen Variablen vorbesetzt.

Dann wartet die Routine auf die Eingabe eines Zeichens. Der Cursor wird währenddessen dadurch simuliert, daß ein Leerzeichen laufend invertiert wird.

Komfortabler als »INPUT«

Nachdem ein Zeichen eingegeben wurde, wird zuerst geprüft, ob überhaupt noch Zeichen angenommen werden dürfen. Ist dies der Fall, wird untersucht, ob das Zeichen ein Steuerzeichen ist.

Falls es keins ist, wird das Zeichen ausgegeben und an den Übergabestring angehängt. Dann wird das Hochkommaflag zurückgesetzt, um weiterhin eine vernünftige Eingabe zu gewährleisten.

Falls das eingegebene Zeichen ein Steuerzeichen ist, gibt es nur vier Möglichkeiten:

  1. Es ist ein »RETURN«, dann ist die Eingabe beendet
  2. Es ist ein »DELete«, dann wird der Übergabestring um ein Zeichen vermindert
  3. Es ist ein »SHIFT RETURN«, dann wird der gesamte String gelöscht, und der Cursor an den Anfang des Eingabefeldes positioniert.
  4. Es ist ein anderes Steuerzeichen, dann wird es ignoriert

Bei den Punkten 1. bis 3. wird auch noch getestet, ob überhaupt schon ein Zeichen eingegeben wurde. Ist dies nicht der Fall, dann haben auch diese drei Steuerzeichen keine Wirkung.

(Willi Burmeister/rg)
Es werden folgende Variablen benutzt:
IN$ Übergabevariable für den einzulesenden String
LT maximale Länge des einzulesenden Strings
ZT Hilfsvariable zur Simulation des Cursors
ZC Hilfsvariable zur Simulation des Cursors
ZL aktuelle Länge des einzulesenden Strings
ZS$ zuletzt gelesenes Zeichen
Z ASCII-Code des gelesenen Zeichens und Laufvariable
Variablenliste zur Eingabe-Routine
10 rem ***************************
12 rem"*                         *
14 rem"*     Willi Burmeister    *
16 rem"*                         *
18 rem"*     Holzkrugweg 30      *
22 rem"*     2390 Flensburg      *
24 rem"*                         *
26 rem"*     Tel.: 0461/92164    *
28 rem"*                         *
30 rem"*         Basic -         *
32 rem"*     Eingaberoutine      *
34 rem"*                         *
36 rem"***************************
40 goto 1000
50 rem ***************************
60 rem *    begin der routine    *
70 rem ***************************
100 print in$; : zt=ti : zc=4 : if (lt<1) then lt=1
110 get z$ : if z$<>"" then 140
120 if (zt<=ti) then print mid$(" {up}{down}{rvon} {rvof}",zc,3);"{left}"; : zc=5-zc : zt=ti+25
130 goto 110
140 z=asc(z$) : zl=len(in$)
150 if (zl<lt) and ((z and 127)>31) then in$=in$+z$ : print z$; : poke 212,0 : goto 110
160 print" {left}";
170 if (z=13) and (zl>0) then return
180 if (z=20) and (zl>0) then in$=left$(in$,zl-1) : print "{left}"; : goto110
190 if (z=141) and (zl>0) then for z=1 to zl : print "{left} {left}"; : next : in$=""
200 goto 110
210 rem ***************************
220 rem *    ende der routine     *
230 rem ***************************
1000 print"{clr}"
1010 print"Basic-Eingaberoutine Beispiel"
1020 print : print
1030 in$="Vorbesetzung" : lt=15
1040 gosub 100
1050 print "{down}{down}" : print in$
Listing 1. »Eingaberoutine«. Bitte bei der Eingabe Seite 6 beachten.
PDF Diesen Artikel als PDF herunterladen
Mastodon Diesen Artikel auf Mastodon teilen
← Vorheriger ArtikelNächster Artikel →