Mit dem Format 4 der @CREATE-Anweisung wird von der Datensichtstation oder von SYSDTA eine Zeichenfolge gelesen und einer Zeichenfolgevariablen zugewiesen.
Operation | Operanden | L-Modus |
@CREATE | svarex READ [string[,...]] [,CODE = name] | |
svarex string | Zeichenfolgevariable, die neu angelegt werden soll. Eine oder mehrere Zeichenfolgen, die in der angegebenen Reihenfolge Ist |
name | Zeichensatz, der für die angegebene Zeichenfolgevariable eingestellt |
Im Dialogbetrieb wird an der Datensichtstation die aus den Operanden gebildete Eingabeaufforderung ausgegeben und eine Zeichenfolge gelesen. Überschreitet die aus den Operanden gebildete Eingabeaufforderung die maximale Länge von 32763 Bytes, wird auf die maximale Länge abgeschnitten und die Fehlermeldung EDT2402 ausgegeben. Ist string nicht angegeben, wird eine Zeichenfolge von SYSDTA statt von der Datensichtstation gelesen.
Im Stapelbetrieb wird string ignoriert und eine Zeichenfolge immer von SYSDTA gelesen.
Die maximale Länge der gelesenen Zeichenfolge hängt vom Eingabe-Medium ab.
Ist der CODE-Operand nicht angegeben, dann werden der Zeichenfolgevariablen der Inhalt der Zeichenfolge und der Kommunikationszeichensatz als Zeichensatz zugewiesen.
Ist der CODE-Operand angegeben, so wird der Zeichenfolgevariablen dieser Zeichensatz zugewiesen und die gelesene Zeichenfolge vor dem Zuweisen in den Zeichensatz name konvertiert. Enthält die einzufügende Zeichenfolge Zeichen, die im Zeichensatz name nicht darstellbar sind, werden diese durch ein Ersatzzeichen ersetzt, sofern ein solches spezifiziert ist (siehe @PAR SUBSTITUTION-CHARACTER), andernfalls wird die @CREATE-Anweisung abgewiesen und die Fehlermeldung EDT5453 ausgegeben.
Die Eingabe von [F1] ohne Text an einer Datensichtstation bewirkt, dass die angegebene Zeichenfolgevariable als leere Zeichenfolgevariable neu angelegt wird. Eine leere Eingabe, die mit [DUE] oder einer anderen Funktionstaste gesendet wird, wird ignoriert und führt zur erneuten Ausgabe der Eingabeaufforderung.
Wird die Anweisung mit [K2] unterbrochen und der EDT-Lauf mit /INFORM-PROGRAM fortgesetzt, so wird die Bearbeitung der Anweisung abgebrochen und die Meldung EDT5501 ausgegeben.
Beispiel 1
6. @PRINT 1.0000 HALLO 2.0000 KEINER VERLAESST 3.0000 DEN RAUM 4.0000 ZEILE 5.0000 SOLL DENN AUSGEGEBEN 6. @SET #S1 = ' WERDEN *** ' 6. @PROC 1 1. @ @CREATE #S2 READ '*** WELCHE ',4,5,#S1 ---------------------- (1) 2. @ @SET #L2 = SUBSTR #S2 --------------------------------------- (2) 3. @ @PRINT #L2 4. @END 6. @DO 1 *** WELCHE ZEILE SOLL DENN AUSGEGEBEN WERDEN *** 2 ---------------------- (3) 2.0000 KEINER VERLAESST 6.
| (1) | Über @CREATE...READ soll die Zeichenfolgevariable |
| (2) | Die Eingabe wird interpretiert und in der Zeilennummervariablen #L2 abgelegt. |
| (3) | Die über die Datensichtstation ausgegebene Anfrage wird beantwortet. |
Beispiel 2
@CREATE #S01 READ 'MUELLER ODER MÜLLER ?'
An der Datensichtstation wird die Eingabeaufforderung 'MUELLER ODER MÜLLER ?' ausgegeben und eine Zeichenfolge eingelesen. Der Zeichenfolgevariablen werden der Kommunikationszeichensatz als Zeichensatz und der Inhalt der gelesenen Zeichenfolge zugewiesen.
@CREATE #S02 READ 'WOHNHAFT IN GÜNZBURG ODER DONAUWÖRTH ?',CODE=EDF041
Für die Zeichenfolgevariable #S02 wird der Zeichensatz EDF041 vereinbart. An der Datensichtstation werden die Eingabeaufforderung ' WOHNHAFT IN GÜNZBURG ODER DONAUWÖRTH ?' ausgegeben und eine Zeichenfolge eingelesen. Diese wird in den Zeichensatz EDF041 konvertiert und der Zeichenfolgevariablen #S02 zugewiesen.