Der Makro CMDWCO erzeugt aus einer vorgegebenen Zeichenkette, einem Auswahlmuster und einem Konstruktions-Muster eine neue Zeichenkette. Diese Ausgabe-Zeichenkette wird im Parameterbereich im Feld '<prefix><macid>NAM' und ihre Länge im Feld '<prefix><macid>LEN' abgelegt. Sowohl die Eingabe- als auch die Ausgabe-Zeichenkette können beliebige SDF-Datentypen haben. Der Benutzer sollte mit dem Makro CMDVAL selbst die Datentyp-Analyse durchführen, da hier die Eingabe-Zeichenkette nicht syntaktisch mit der Ausgabe-Zeichenkette verglichen wird.
Operation | Operanden |
CMDWCO | SELECT = <c-string 1..255> / <var: char:255> ,CONSTR = <c-string 1..255> / <var: char:255> ,SRCNAME = <c-string 1..255> / <var: char:255> ,MAXLEN =255 / <integer 1..255> / <var: int:1> ,PARTIAL = *NO / *YES / <var: bit:1> ,SYNTAX = *BS2000 / *POSIX / <var: bit:1> ,PREFIX = C / <char:1> ,MACID = MDW / <char:3> ,MF = D / C / L / M / E ,PARAM = <var: pointer> |
SELECT =
gibt die Selektions-Zeichenkette an. Eine Selektions-Zeichenkette ist eine Kombination aus einem Wildcard-Suchmuster und konstanten Namensteilen (siehe Metasyntax). Die Selek-tions-Zeichenkette darf maximal 255 Zeichen lang sein. Ist sie kürzer, so muss sie mit mindestens einem Leerzeichen abgeschlossen sein. Bei leerer Selektions-Zeichenkette (Leerzeichen) und Angabe von PARTIAL=*YES werden alle Namen ausgewählt. Die Behandlung erfolgt wie bei teilqualifizierten Dateinamen.
<c-string 1..255>
Angabe in Form einer C-String-Konstante.
<var: char:255>
Angabe in Form einer String-Variable.
CONSTR =
gibt die Konstruktions-Zeichenkette an. Eine Konstruktions-Zeichenkette ist eine Kombination aus einem Konstruktionsmuster und konstanten Namensteilen (siehe Metasyntax). Die Konstruktions-Zeichenkette darf maximal 255 Zeichen lang sein. Ist sie kürzer, so muss sie mit mindestens einem Leerzeichen abgeschlossen sein. Bei leerer Konstruktions-Zeichenkette (Leerzeichen) und Angabe von PARTIAL=*YES werden alle Namen ausgewählt. Die Behandlung erfolgt wie bei teilqualifizierten Dateinamen.
<c-string 1..255>
Angabe in Form einer C-String-Konstante.
<var: char:255>
Angabe in Form einer String-Variable.
SRCNAME =
gibt die Zeichenkette an, auf die sich das Auswahlmuster bezieht. Die Zeichenkette darf maximal 255 Zeichen lang sein. Ist sie kürzer, so muss sie mit mindestens einem Leerzeichen abgeschlossen sein.
<c-string 1..255>
Angabe in Form einer C-String-Konstante.
<var: char:255>
Angabe in Form einer String-Variable.
MAXLEN =
gibt die maximale Länge der zu erzeugenden Ausgabe-Zeichenkette an. Ist eine erzeugte Ausgabe-Zeichenkette länger als hier angegeben, wird ein Fehlercode geliefert und im Parameterbereich wird nur die bei MAXLEN angegebene Anzahl von Zeichen eingetragen.
255 / <integer 1..255>
Angabe der maximalen Länge. Voreingestellt sind 255 Zeichen.
<var: int:1>
Angabe der maximalen Länge mit einer 1 Byte langen Integer-Variable.
PARTIAL =
Teilqualifizierung ist erlaubt. Punkte am Ende der Selektions- und der Konstruktions-Zeichenkette werden als Teilqualifizierung gedeutet. Teilqualifizierung wird auch dann angenommen, wenn Selektions- und Konstruktions-Zeichenkette leer sind. Eine leere Zeichenkette wird wie der Wildcardausdruck ’*’ behandelt. Auf dieses implizit gebildete Muster kann in der Konstruktions-Zeichenkette nicht mit ’*’ Bezug genommen werden.
Eine Zeichenkette ’xxxx.’ wird wie ’xxxx.*’ behandelt.
*NO
Ein Punkt am Ende der Selektions- und der Konstruktions-Zeichenkette wird wie eine Konstante behandelt. Mit einer leeren Selektions-Zeichenkette kann nur ein leerer SRCNAME ausgewählt werden. Mit einer leeren Konstruktions-Zeichenkette kann nur ein leerer Name erzeugt werden.
*YES
Ein Punkt am Ende der Selektions- und der Konstruktions-Zeichenkette wird als Teilqualifizierung behandelt. Das Gleiche gilt für leere Zeichenketten.
<var: bit:1>
Bitvariable: | bit = 0: Teilqualifizierung ist nicht erlaubt. |
SYNTAX =
Legt fest, welcher Typ der Wildcard-Syntax verwendet wird.
*BS2000
Die komplette BS2000-Wildcard-Syntax kann verwendet werden.
*POSIX
Die Wildcard-Syntax gemäß POSIX wird verwendet.
<var: bit:1>
Bitvariable: | bit = 0: wie *BS2000 |
Beschreibung der Parameter PREFIX, MACID, MF und PARAM siehe Abschnitt „Typen vonMakroaufrufen“.
Rückinformation und Fehleranzeigen
Der Returncode wird im Standardheader des Parameterbereiches übergeben.
Bei SC1=X’00’ enthalten die Ausgabefelder gültige Informationen:
<prefix><macid>LEN: | Länge der erzeugten Zeichenkette |
<prefix><macid>NAM: Standardheader | Erzeugte Zeichenkette. Danach folgen Leerzeichen. cc: Subcode 2 (SC2) |
Standard header | cc: Subcode 2 (SC2) bb: Subcode 1 (SC1) aaaa: Maincode |
(SC2) | SC1 | Maincode | Bedeutung |
00 00 00 00 00 | 00 40 40 01 01 | 0000 0002 0003 0004 0008 | kein Fehler Selektion fehlerhaft oder SRCNAME nicht auswählbar Syntaxfehler in Konstruktion oder semantischer Fehler Erzeugte Zeichenkette ist länger als MAXLEN. Ausgabebereich wird nur bis MAXLEN-Länge gefüllt. Fehler im Parameterbereich (Zugriffsfehler oder Parameter nicht unterstützt) |