Die Funktion sdfrd bewirkt, dass SDF
eine Programmanweisung von SYSSTMT einliest (Für die Systemdatei SYSSTMT gilt die gleiche Zuweisung, die für die Systemdatei SYSDTA getroffen ist. Bezüglich Folgezeilen, Fortsetzungszeichen, Protokollierung und Angabe von Bemerkungen gelten für die Anweisungseingabe von SYSSTMT die gleichen Regeln wie für die Kommandoeingabe von SYSCMD.)
die eingelesene Anweisung analysiert und
das Analyseergebnis an das Programm übergibt.
Voraussetzung ist, dass eine aktivierte Syntaxdatei die Definition des Programms und seiner Anweisungen enthält. Eine detaillierte Erläuterung finden Sie beim Makro RDSTMT (RDSTMT Anweisung lesen und analysieren).
Da die Funktion einige optionale Parameter hat, gibt es 5 verschiedene Formate.
Format 1
int sdfrd (char *area);
Format 2
int sdfrdmsg (char *area, char *msg);
Format 3
int sdfrdall (char *area, char *msg, char *allow);
Format 4
int sdfrdpre (char *area, char *msg, char *allow, STR8 prefer);
Format 5
int sdfrddef
(char *area, char *msg, char *allow, STR8 prefer, char *def1,
char *def2, char *def3, char *def4, char *def5);
Beschreibung der Parameter
char *area | Zeiger auf den Puffer, in dem der normierte Übergabebereich angelegt wurde (siehe sdfinit) | |||||||||||||
char *msg | Zeiger auf eine Meldung, die vor dem Lesen der Anweisung ausgegeben werden soll. Die Zeichenkette wird intern von SDF in einen Satz mit variabler Satzlänge umgewandelt und darf maximal | |||||||||||||
char *allow | Zeiger auf die Liste der zulässigen Anweisungen (muss auf Wortgrenze ausgerichtet sein) Format der Liste der zulässigen Anweisungen:
| |||||||||||||
STR8 prefer | nur im geführten Dialog: interner Name der Anweisung, die als nächste erwartet wird, 8 Zeichen lang, mit Null-Zeichen („\0“) abgeschlossen | |||||||||||||
char *def1,*def2,*def3,*def4,*def5 | ||||||||||||||
Zeiger auf maximal 5 Umsetzbeschreibungen, mit denen Default-Werte von Operanden durch vom Programm dynamisch erzeugte Werte ersetzt werden. Für alle 5 Zeiger muss ein Wert angegeben werden. Nicht benötigte Zeiger sind als NULL-Zeiger anzugeben. Ab dem ersten gefundenen NULL-Zeiger werden alle weiteren Zeiger nicht mehr berücksichtigt. |
Ergebnis
Die Funktion liefert eine Integerzahl als Ergebnis (siehe "Beispiele").
Lesen mit Umsetzen von Default-Werten
Mit Hilfe von Umsetzbeschreibungen können Default-Werte von Operanden, die mit ADD-VALUE ...,VALUE=<c-string>...(OVERWRITE-POSSIBLE=*YES) bzw. ADD-OPERAND ..., OVERWRITE-POSSIBLE=*YES in der Syntaxdatei definiert sind, durch vom Programm dynamisch erzeugte Werte ersetzt werden. Je Anweisung kann nur eine Umsetzbeschreibung angegeben werden. Die Umsetzbeschreibung enthält u.a. den internen Anweisungsnamen und die Information, welche Operandenwerte wie umzusetzen sind. Eine Umsetzbeschreibung kann entweder durch einen vorhergehenden sdfrd-Aufruf oder durch einen sdftr-Aufruf, bei dem die neuen Werte eingetragen sind, erzeugt werden. Sie hat das Format eines normierten Übergabebereiches.