★ APPLICATIONS ★ DIVERS ★ INPUT - I need more Input ★ |
RSX Input (CPC Amstrad International) | Applications Divers |
Fehler abgefangen Erst vor kurzem wurde Ihnen eine vom BASIC aus erzeugte ERWEITERTE-INPUT-Routine vorgestellt. Allerdings war die Routine nicht so leicht zu bedienen und hatte aus Speicherplatzgründen keine Fehlerabfangroutine. Insbesondere beim Löschen von Zeichen innerhalb eines Strings waren längere Ausführungszeiten nicht zu vermeiden. Hier nun die schnellere Alternative in Maschinencode mit einigen weiteren Features. Die Vorteile der MC-Routine liegen auf der Hand:
Syntax Für den Aufruf der Routine — nach der Initialisierung mit CALL &A000 - gibt es zwei Möglichkeiten:
stream - Mögliche Werte von 0 bis 7. Alle Bildschirmfenster sind daher ansprechbar. Eine Aufnahme von Strings von der Diskette ist hier allerdings nicht möglich. Besonderheiten In dem MC wurde der Teil des BASIC-Interpreters, welcher für die Fehlermeldungen zuständig ist, mit berücksichtigt. Das bedeutet, daß bei falschen Eingaben ganz normale Fehlermeldungen über #0 ausgegeben werden und mit einer normalen ON ERROR GOTO Anweisung weiterverarbeitet werden können. Mögliche Fehlermeldungen:
Übergabe der Stringvariablen Ein wesentlicher Punkt dieses Input ist es, die Anzahl der einzugebenden Zeichen zu beschränken. Beim normalen Input oder Line Input ist es ja bekanntlich möglich, immer 255 Zeichen zu übergeben. Nehmen wir einmal an, Sie möchten eine Namenstabelle einrichten, und jeder einzugebende Name sollte nicht mehr als zehn Zeichen beeinhalten, so richten Sie den Übergabestring mit SPACE$(10) ein. Hierdurch wird der Routine bei Übergabe mitgeteilt, daß die Eingabe nicht länger als zehn Zeichen sein darf. Weniger Zeichen können Sie natürlich eingeben. Der String wird am Ende dann auch auf diese Länge reduziert. Alle Steuerzeichen durch CTRL+TASTE werden nicht nur in den String übernommen, sondern auch dargestellt. Dadurch hat die Routine große Ähnlichkeit mit dem LINE INPUT des BASIC. Nach Beendigung der Eingabe wird kein Carriage-Return durchgeführt. Hierfür müssen Sie schon selbst Sorge tragen. (Man braucht ja nicht immer ein CR - oder?) Die Tastaturbelegung ist ähnlich wie beim normalen Input oder Line Input. CTRL+TASTE übernehmen Steuerzeichen in den String. Cursortasten bewegen den Cursor auf den String, allerdings nur rechts und links. CTRL+TAB schaltet zwischen Einfüge- und Überschreibemodus hin und her. Standard ist der Einfügemodus. DEL löscht das Zeichen unter dem Cursor. Reststring rückt auf. CLR löscht den ganzen String. Eingabe von vorn, RET/ENTER beendet die Eingabe. CTRL+Cursortasten bewegen den Cursor an den Anfang beziehungsweise an das Ende des Strings. Ist die maximale Länge einer Eingabe erreicht, kann kein Zeichen mehr übernommen beziehungsweise überschrieben werden. Sie müssen erst ein Zeichen mit DEL löschen. Übrigens wird die Länge eines Strings nach Eingabeabschluß aktualisiert. Bei Nichterreichen der maximalen Länge wird entsprechend gekürzt. Folglich ist es möglich, auch Leerstrings einzugeben. Nach Abtippen des BASIC-Laders speichern Sie diesen sicherheitshalber erst ab und starten dann. Es wird selbsttätig das Binärfile "EINGABE.BIN" abgespeichert. Sie können den neuen Befehl dann folgendermaßen benutzen: 10 IF PEEK(8cA000)=0 THEN MEMORY &9FFF: LOAD"eingabe.bin":CALL &A000 Danach steht Ihnen der Befehl |INPUT zur Verfügung. Als letztes finden Sie ein Demo-Programm, das Ihnen Beispiele einer Anwendung vorführt.
|