READ

Aus C64-Wiki
Zur Navigation springenZur Suche springen
READ
Syntax: READ <Variable> [,<Variable>]...
Parameter
<Variable>: Variable, die den eingelesenen Wert übernimmt
Einordnung
Typ: Anweisung
Kontext: Variablen
Aufgabe: Einlesen von Konstanten
Abkürzung: rE
Token: $87 (135)
Verwandte Befehle
DATA, RESTORE

Anmerkung: Dieser Artikel beschreibt den BASIC-Befehl READ unter BASIC V2 des Commodore 64.


Der BASIC-Befehl READ dient zum Einlesen von Konstanten aus dem BASIC-Befehl DATA, die in der angegebenen Variable hinterlegt werden. Es dürfen pro READ-Befehl auch mehrere Konstanten eingelesen werden.

Wird der falsche Variablentyp (also mit einer Zahlenvariable eine Zeichenkette eingelesen) zum Einlesen benutzt oder fehlt eine Variablenangabe, so erscheint die BASIC-Fehlermeldung ?SYNTAX ERROR. Im Falle eines falschen Variablentyps erfolgt ein Verweis auf die entsprechende DATA-Zeilennummer. Dies kann vermieden werden, indem immer nur Zeichenkettenvariablen zum Einlesen von DATA-Konstanten genutzt werden.
Ist der eingelesene Wert außerhalb des zulässigen Wertebereichs der angegebenen Variablen, etwa bei Ganzzahlvariablen, meldet der Interpreter den Fehler ?ILLEGAL QUANTITY ERROR.
Falls mehr Werte eingelesen werden sollen als Konstanten in den DATA-Zeilen hinterlegt worden sind, wird die BASIC-Fehlermeldung ?OUT OF DATA ERROR ausgegeben.

Der READ-Zeiger auf die DATA-Konstanten kann mit dem BASIC-Befehl RESTORE zurückgesetzt werden.

Zahlenwerte werden von READ kopiert, Zeichenketten jedoch einfach referenziert. Jede per READ beschriebene Zeichenkettenvariable benötigt im Variablenspeicher also nur den Platz, den ihr String-Descriptor einnimmt.

Beispiele[Bearbeiten | Quelltext bearbeiten]

Unterschiedliche Datentypen[Bearbeiten | Quelltext bearbeiten]

10 DATA 1,2,3, APFEL, "COMMODORE 64", ."GAENSEFUESSCHEN", "MIT,KOMMA" 
20 READ A
30 READ B%, C, D$
40 READ E$
50 READ F$, G$
60 PRINT A, B%, C, D$, E$, F$, G$

Es werden Leerzeichen, Anführungszeichen und Komma in den Werten berücksichtigt bzw. behandelt. Ergibt die Ausgabe:

 1         2         3        APFEL
COMMODORE 64        ."GAENSEFUESSCHEN"
MIT,KOMMA


Werte mit einer Schleife einlesen[Bearbeiten | Quelltext bearbeiten]

10 FOR X=0 TO 11: READ A(X): PRINT A(X),;:NEXT
20 DATA 10,20,.,40,50,,70,80,0,100,-,110