Your Browser is not longer supported

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

{{viewport.spaceProperty.prod}}

CMDWCC Wildcard-Syntax prüfen und Mustervergleich durchführen

&pagelevel(5)&pagelevel

Der Makro CMDWCC prüft ein vorgegebenes Wildcard-Suchmuster auf korrekte Syntax und führt einen Mustervergleich durch. Beispiele zur Verwendung von CMDWCC finden Sie auf "CMDWCC Wildcard-Syntax prüfen und Mustervergleich durchführen".

Operation

Operanden

CMDWCC

ACTION = list-poss(2): *CHECK / *MATCH

,PAT@ = <var: pointer>

,PATL = <var: int:4>

,INP@ = NULL / <var: pointer>

,INPL = 0 / <var: int:4>

,FGG = *NO / *YES / <var: bit:1>

,PART_Q = *NO / *YES / <var: bit:1>

,SYNTAX = *BS2000 / *POSIX

,WORK@ = NULL / <var: pointer>

,PREFIX = C / <char:1>

,MACID = MDW / <char:3>

,MF = D / C / L / M / E

,PARAM = <var: pointer>

ACTION =
legt fest, ob nur die Wildcard-Syntax geprüft oder auch ein Mustervergleich durchgeführt wird.

*CHECK
Das Wildcard-Suchmuster wird auf korrekte Syntax geprüft.

*MATCH
Das Wildcard-Suchmuster wird mit der bei INP@ angegebenen Zeichenkette verglichen. Das Suchmuster sollte vorher oder gleichzeitig mit *CHECK unbedingt auf korrekte Syntax geprüft werden.

PAT@ = <var: pointer>
Adresse des Wildcard-Suchmusters.

PATL = <var: int:4>
Länge des Wildcard-Suchmusters.

INP@ =
Nur für ACTION=*MATCH:
Gibt die Adresse einer Zeichenkette an, mit der das Wildcard-Suchmuster verglichen werden soll.

NULL
Es wird keine Vergleichszeichenkette angegeben.

<var: pointer>
Adresse der Zeichenkette.

INPL = 0 / <var: int:4>
Länge der Zeichenkette (nur für ACTION=*MATCH).

FGG =
Legt fest, ob beim Vergleich des Wildcard-Suchmusters mit der Eingabe-Zeichenkette Dateigenerationsnummern (fgg, file generation group) unterstützt werden.

*NO
Dateigenerationsnummern werden nicht unterstützt.

*YES
Dateigenerationsnummern werden unterstützt.

<var: bit:1>


Bitvariable:


bit = 0: Dateigenerationsnummern werden nicht unterstützt.
bit = 1: Dateigenerationsnummern werden unterstützt.


PART_Q =
Legt fest, ob beim Vergleich des Wildcard-Suchmusters mit der Eingabe-Zeichenkette teilqualifizierte Dateinamen unterstützt werden.

*NO
Teilqualifizierte Dateinamen werden nicht unterstützt.

*YES
Teilqualifizierte Dateinamen werden unterstützt.

<var: bit:1>


Bitvariable:


bit = 0: Teilqualifizierte Dateinamen werden nicht unterstützt.
bit = 1: Teilqualifizierte Dateinamen werden unterstützt.


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.

WORK@ =
Nur für ACTION=*MATCH:
Gibt die Adresse eines Arbeitsbereiches für den Vergleich der Eingabe-Zeichenkette mit dem Wildcard-Suchmuster an.

NULL
Es wird kein Arbeitsbereich angegeben.

<var: pointer>
Adresse eines Arbeitsbereiches. Der Arbeitsbereich muss mindestens (5*PATL/4 + 5)*4 Bytes lang und auf Wortgrenze ausgerichtet sein.

Beschreibung der Parameter PREFIX, MACID, MF und PARAM siehe Abschnitt „Typen vonMakroaufrufen“.

Rückinformation und Fehleranzeigen

Der Returncode wird im Standardheader des Parameterbereiches übergeben.

Standardheader

cc: Subcode 2 (SC2)
bb: Subcode 1 (SC1)
aaaa: Maincode

(SC2)SC1MaincodeBedeutung
00
00
00
00
01
00
40
40
01
00

0000
0001
0002
0008
0000

kein Fehler
Syntaxfehler im Suchmuster
Eingabe-Zeichenkette passt nicht zum Suchmuster
Parameter-Fehler
kein Wildcard im Suchmuster

Hinweise

  • Suchmuster für einen Dateinamen können vom Datentyp <filename> oder <partial-filename> sein.

  • Ein teilqualifizierter Dateiname kann ebenfalls als Wildcard-Suchmuster verwendet werden.

Bei Überprüfung von Dateinamen mit Dateigenerationsnummer auf Übereinstimmung mit einem Wildcard-Suchmuster ist die folgende Tabelle zu beachten. Die Tabelle enthält die zurzeit geltenden Möglichkeiten, bei denen eine Übereinstimmung möglich ist.

Zu Dateigenerationsgruppen (fgg, file generation group) siehe Benutzerhandbuch „Einführung in das DVS“ [7].


INPUT-Zeichenfolge

PATTERN-Zeichenfolge

Übereinstimmung möglich?

ohne fgg

ohne fgg
mit fgg

ja
nein

mit absoluter fgg
(abs_fgg (*nnnn))

ohne fgg
mit abs_fgg (*nnnn)
mit rel_fgg (+/-nn)

ja
ja, wenn (*nnnn) übereinstimmt
nein

mit relativer fgg
(rel_fgg (+/-nn)

ohne fgg
mit abs_fgg (*nnnn)
mit rel_fgg (+/-nn)

ja
nein
ja, wenn (+/-nn) übereinstimmt



abs_fgg:

absolute Generationsnummer (*nnnn), 0001<=nnnn<=9999

rel_fgg:

relative Generationsnummer (+/-nn), 0<=nn<=99

Diese Tabelle kann bei zukünftigen Systemerweiterungen ihre Gültigkeit verlieren und ist deshalb nicht als garantierte Schnittstelle zu betrachten.

Beispiele zur Verwendung von CMDWCC

EXWCC   START
        BASR  10,0
        USING *,10
*
* HOW TO USE CMDWCC
*
*
* EXAMPLE 1: PL1 IS INITIALIZED USING MF=L
*
EX1     LA 1,PL1
        CMDWCC MF=E,PARAM=PL1
        B EX2
PL1     CMDWCC MF=L,PAT@=A(PAT),PATL=8,INP@=A(INP),INPL=8,             *
               SYNTAX=*BS2000,ACTION=*MATCH,WORK@=A(WA)
*
* EXAMPLE 2: PL2 IS INITIALIZED USING MF=L WITH DUMMY VALUES
*            AND MODIFIED USING MF=M BEFORE EXECUTION 
* NOTE: MF=M ASSUME THAT THE PARAMETER AREA IS POINTED BY REGISTER 1 
*
EX2     LA 1,PL2
        USING CWCC_MDL,1
        CMDWCC MF=M,PATL=PATL,INPL=INPL,PAT@=A(PAT),INP@=A(INP),       *
               WORK@=A(WA)
        CMDWCC MF=E,PARAM=PL2
        B EX3
PL2     CMDWCC MF=L,PAT@=A(0),PATL=0,INP@=A(0),INPL=0,                 *
               SYNTAX=*BS2000,ACTION=*MATCH,WORK@=A(0)
*
* EXAMPLE 3: PL3 IS INITIALIZED USING MF=L WITH DUMMY VALUES
*            AND MODIFIED USING MF=M BEFORE EXECUTION IN ANOTHER WAY
* NOTE: MF=M ASSUME THAT THE PARAMETER AREA IS POINTED BY REGISTER 1 
*
EX3     LA 1,PL3
        USING CWCC_MDL,1
        LA     2,PAT
        ST     2,PATADD
        LA     2,INP
        ST     2,INPADD
        LA     2,WA
        ST     2,WAADD
        CMDWCC MF=M,PATL=PATL,INPL=INPL,PAT@=PATADD,INP@=INPADD,       *
               WORK@=WAADD
        CMDWCC MF=E,PARAM=PL3
        TERM 
PL3     CMDWCC MF=L,PAT@=A(0),PATL=0,INP@=A(0),INPL=0,                 *
               SYNTAX=*BS2000,ACTION=*MATCH,WORK@=A(0)
PATADD  DS     A
INPADD  DS     A
WAADD   DS     A
*
* PATTERN AND INPUT
*
PAT     DC     C'PATTERN*         ' 
PATL    DC     F'8'
INP     DC     C'PATTERNA         ' 
INPL    DC     F'8'
WA      DS     0A
        DS     XL1000
        CMDWCC MF=D
        END