Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

sdfrd Anweisung lesen und analysieren

&pagelevel(4)&pagelevel

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
400 Zeichen lang sein. Bei Angabe eines NULL-Zeigers wird keine Meldung angezeigt.

char *allow

Zeiger auf die Liste der zulässigen Anweisungen (muss auf Wortgrenze ausgerichtet sein)

Format der Liste der zulässigen Anweisungen:

N

anweisung1

anweisung 2

.....

anweisung n

N(2 Byte):Anzahl der Anweisungen in der Liste
anweisungx(8 Byte):interner Name einer zulässigen Anweisung

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.