APPLICATIONSPROGRAMMATION ★ REDO FROM START - nein danke|CPC Amstrad International) ★

INPUT-Befehl (CPC Amstrad International)Applications Programmation
★ Ce texte vous est présenté dans sa version originale ★ 
 ★ This text is presented to you in its original version ★ 
 ★ Este texto se presenta en su versión original ★ 
 ★ Dieser Text wird in seiner Originalfassung präsentiert ★ 

Erweiterter INPUT-Befehl

Es kann einen wirklich “fuchsig“ machen, wenn bei INPUT und LINE INPUT im BASIC-Bereich falsche Daten eingegeben werden. Denn allzu leicht passiert es, daß versehentlich numerische Eingaben erfolgen, statt geforderte Strings oder umgekehrt. Dadurch wird der Bildschirmaufbau durch die Mitteilung “REDO FROM START“ zerstört.

Oder nehmen wir an, es wird eine zwei Zeichen lange Ziffernfolge verlangt und durch zu langes Betätigen oder Unachtsamkeit, hat man auf einen Schlag fünf oder mehr Zeichen eingegeben. Auch das kann zur Zerstörung des Bildauf-baus oder bei fehlenden Abfangroutinen für Eingabefehler, zu unschönen Ergebnissen führen. Nun gut, das erste Problem läßt sich leicht umgehen, indem man ausschließlich Strings in der Eingabe verlangt und diese nötigenfalls erst später mit VAL in numerische umwandelt. Aber dennoch können immer noch zu lange Zeichenfolgen eingegeben werden und längere Fehlerabfangroutinen sind (bei jedem verlangten Input) unvermeidlich. Das ist nun vorbei. Das nachstehend aufgeführte in BASIC realisierte Programm, begrenzt nicht nur die Zeichenlänge, sondern ist zudem auch mit seinen 869 Bytes ziemlich kurz, und Sie benötigen keine Fehlerabfangroutinen mehr. Das Programm läuft in der vorgegebenen Version nur auf dem CPC 664 und 6128. 464 Besitzer müssen vorher den Emulator starten. Das File wird nach Belegung der Abfragevariablen einfach mit GOSUB (Zeilennummer) aufgerufen. Je nachdem, unter welcher Zeilennummer es in Ihrem Programm Verwendung findet. Beachten Sie bei einer Umnumerierung, daß die internen Sprungbefehle angepaßt werden müssen.

Bedienungsanleitung

Die Routine läuft ohne Abänderungen in allen drei Mods! Wichtig sind die anwenderbezogenen Variablen;

zahl = zwei Werte stehen zurVerfügung:

null (0) ist die Mitteilung, daß Strings verlangt werden.
eins (1) stellt das Programm auf numerische Variablen ein.

Hier müssen zwei weitere Variablen definiert werden:

pruef1 = Untergrenze und
pruef2 = Obergrenze der zu erwartenden Eingabe.

Damit werden dann eventuell zu hohe oder zu niedrige Werte abgefangen. Das ist wichtig bei negativen Eingaben, da die Angabe eines (-) als eine Stelle mitgezählt wird.

dev = Hier stehen Werte von 0-7 zur Verfügung.

Sie gibt den Stream an, von dem die Eingabe gelesen werden soll.

halt = Anzahl der Zeichen, die maximal eingegeben werden können. Werte von 1-255 sind zulässig. Bedenken Sie, daß ein (+) oder (-) als eine Stelle gezählt werden muß.

hilf$ = Enthält nach Abarbeitung der Routine den gewünschten String und kann dann z.B. mit versuch$=hilf$ auf andere Strings übertragen werden. Nie länger im Programmablauf behalten, da hilf$ bei Aufruf der Routine gelöscht wird.

hilf = Enthält nach Abarbeitung der Routine den gewünschten numerischen Wert (bei zahl = l) ansonsten ähnlich dem hilf$.

mal = Zwei Werte möglich. Null unterdrückt Printen der Eingabe auf dem Bildschirm und eins stellt diese an.

switch = Kann zwei Werte annehmen. Null ergibt eine normale Eingabe. Eins stellt die Eingabe auf inversen Modus. Vorteil! Die maximale Länge der zu erwartenden Eingabe wird angezeigt.

Tastaturbeleglaug

DEL: Löscht das letzte eingegebene Zeichen vor dem Cursor.

CLR: Vollzieht wirklich CLeaR.Eingabe von vorn.

ENTER/RETURN: ist die Eingabebeendigung, wenn mindestens ein Zeichen eingegeben wurde.

CURSORTASTEN: rechts wie Leertaste und links wie DEL.

Die anderen haben keine Funktion; ansonsten wie auf dem Tastaturfeld vorhanden.

Besonderheiten

Ausdruck auf dem Bildschirm können Sie z.B. unsichtbar machen, um zu Beginn oder während des Programmablaufs in ruhe Codewörter eingeben zu können, die auch der beste Freund nicht sehen soll. Die zu erwartende Eingabe kann in der Maximallänge des Wortes invers eingegeben werden. So ist zu Beginn bereits zu erkennen, wie lang die Eingabe sein sollte.

Vor Aufrufder Routine beachten

Die zu Beginn genannten Variablen sind vorher mit Werten zu belegen. Wenn zahl mit eins geladen wird, müssen zusätzlich noch pruefl und prue£2 versorgt werden (bei zahl=0 nicht nötig). Dann ist es wichtig, den Cursor zu positionieren, wo die Eingabe auf dem Bildschirm erfolgen soll. Dazu gibt es zwei Möglichkeiten. Einmal direkt hinter dem Frageausdruck (Semikolon setzen). Das Semikolon ist wichtig, da dann kein CR durchgeführt wird. Oder Sie positionieren den Cursor einfach mit LOCATE. Danach können Sie beruhigt die Routine mit GOSUB (Zeilennummer) aufrufen.

Zu guter Letzt noch ein kurzes Testprogramm, welches mit CHAIN MERGE die Routine selbsttätig nachlädt (folglich separat abspeichern).

(Holger Schäkel/cd) , CPCAI

★ PUBLISHER: CPC Amstrad International
★ YEAR: 1988
★ CONFIG: 64K + AMSDOS
★ LANGUAGE:
★ LiCENCE: LISTING
★ COLLECTION: CPC AMSTRAD INTERNATIONAL 1988
★ AUTHOR: Holger Schäkel
 

★ AMSTRAD CPC ★ DOWNLOAD ★

Type-in/Listing:
» INPUT-Befehl    (CPC  Amstrad  International)    GERMANDATE: 2021-08-10
DL: 143
TYPE: ZIP
SiZE: 4Ko
NOTE: 40 Cyls
.HFE: Χ

★ AMSTRAD CPC ★ A voir aussi sur CPCrulez , les sujets suivants pourront vous intéresser...

Lien(s):
» Applications » Mathe-Master (Happy Computer)
» Applications » Reliefs Mathematiques
» Applications » Courbes Mathématiques (CPC Revue)
» Applications » Programmathèque Amstrad
» Applications » Mathe-CPC (CPC Magazin)
» Applications » Mathematische Statistik (GSS Verlag)
Je participe au site:
» Vous avez des infos personnel, des fichiers que nous ne possédons pas concernent ce programme ?
» Vous avez remarqué une erreur dans ce texte ?
» Aidez-nous à améliorer cette page : en nous contactant via le forum ou par email.

CPCrulez[Content Management System] v8.73-desktop/c
Page créée en 254 millisecondes et consultée 707 fois

L'Amstrad CPC est une machine 8 bits à base d'un Z80 à 4MHz. Le premier de la gamme fut le CPC 464 en 1984, équipé d'un lecteur de cassettes intégré il se plaçait en concurrent  du Commodore C64 beaucoup plus compliqué à utiliser et plus cher. Ce fut un réel succès et sorti cette même années le CPC 664 équipé d'un lecteur de disquettes trois pouces intégré. Sa vie fut de courte durée puisqu'en 1985 il fut remplacé par le CPC 6128 qui était plus compact, plus soigné et surtout qui avait 128Ko de RAM au lieu de 64Ko.