Komponente: | FIND-FILE |
Funktionsbereich: | Kommandoverarbeitung |
Anwendungsbereich: | UTILITIES |
Privilegierung: | STD-PROCESSING |
Funktionsbeschreibung
Mit dem Kommando FIND-FILE können C-Strings und Hex-Strings in einer Menge von Dateien gesucht werden. Wahlweise können die Dateinamen mit den Treffern (SHOW-RESULT=*MATCHES, das ist der Standard), oder nur die Dateinamen, in denen das Such-Muster gefunden wurde, (SHOW-RESULT=*FILE-NAMES) ausgegeben werden.
Es werden alle Dateitypen außer Banddateien unterstützt. SAM und ISAM Dateien werden satzweise und PAM-Dateien seitenweise durchsucht, dementsprechend erfolgt auch die Ausgabe der gefundenen Daten: Bei SAM- und ISAM-Dateien mit der Satznummer und Byte-Position im Satz, bei PAM-Datei unter Angabe der Seitennummer. Auch bei PLAM-Bibliotheken wird die Seitennummer des Treffers angegeben. Das jeweilige Element muss mit LMS-Mitteln (z.B. FIND-ELEMENT) ermittelt werden.
Zur Selektion der zu durchsuchenden Dateien kann der Operand SELECT=*BY-ATTRIBUTES(...) genutzt werden. Da die Selektionskriterien begrenzt sind, gibt es neben diesem Operanden die Möglichkeit in einer Datei eine Dateiliste anzugeben (FILE-NAME=*FROM-FILE(LIST-FILE-NAME=...). Diese Dateiliste kann unter anderem mit dem Kommando SHOW-FILE-ATTRIBUTES erstellt werden. Siehe Beispiel 11.
Das Kommando unterstützt die Ausgabe in S-Variable.
Format
FIND-FILE | Kurzname: FNF | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Operandenbeschreibung
FILE-NAME = list-poss(100): <filename 1..54_without-gen_with-wild(80)> / *FROM-FILE(…)
Dateien die von FIND-FILE durchsucht werden.
FILE-NAME = list-poss(100): <filename 1..54_without-gen_with-wild(80)>
Die Dateinamen können mit Wildcards angegeben werden. Es kann eine Liste von bis zu 100 Dateinamen angegeben werden.
FILE-NAME = *FROM-FILE(…)
Die Pfadnamen der Dateien, die durchsucht werden sollen, werden einer Datei entnommen.
LIST-FILE-NAME = <filename_1..54_without_gen>
Die angegebene Datei muss eine SAM-Datei mit variabler Satzlänge sein, die eine Liste von Pfadnamen enthält. Eine solche Datei kann z.B. mit dem Kommando SHOW-FILE-ATTRIBUTES (mit OUTPUT=SH.OUT(FORM-NAME=*FILE-NAME)) erzeugt werden, wobei hier detailliertere Selektionskriterien verwendet werden können.
Die Datei muss pro Satz bzw. Zeile einen Dateinamen enthalten. Leerzeichen davor und danach werden ignoriert.
PATTERN = <c-string 1..256_with-lower-case>(…) / <x-string 1…256>(…)
Das Muster, das in den angegebenen Dateien gesucht wird.
PATTERN = <c-string 1..256_with-lower-case>(…)
String des Musters, das in den Dateien gesucht wird. Das Suchmuster wird als EBCDIC-Zeichenkette aufgefasst. Bei der Suche in Dateien, deren CCS ungleich einem EBCDIC-Zeichensatz ist, muss das Suchmuster daher als x-String angegeben werden.
CASE-SENSITIVE = *NO / *YES
Gibt an, ob das Muster exakt mit der angegebenen Groß- und Kleinschreibung vorkommen muss.
CASE-SENSITIVE = *NO
Die Groß- und Kleinschreibung des Musters wird ignoriert und alle Varianten werden gesucht.
CASE-SENSITIVE = *YES
Die Groß- und Kleinschreibung des Musters wird beachtet und nur danach wird gesucht.
TYPE = *FIXED-STRING
Gibt den Typen des eingegebenen Musters an.
TYPE = *FIXED-STRING
Der Typ des Musters ist ein String von einer festen Länge und ohne Platzhalter. Das Muster wird genau wie angegeben, mit Ausnahme der Klein- und Großschreibung, gesucht.
PATTERN = <x-string 1…256>
Hexadezimaler Suchstring, der in den Dateien gesucht wird.
SELECT = *ALL / *BY-ATTRIBUTES(…)
Selektion, welche Dateien beim Ausführen des Kommandos durchsucht werden.
SELECT = *ALL
Alle mit FILE-NAME angegebenen Dateien werden durchsucht.
SELECT = *BY-ATTRIBUTES(…)
Nur Dateien mit den ausgewählten Attributen werden durchsucht.
FILE-STRUCTURE = *ANY / list-poss(3): *SAM / *PAM / *ISAM
Nur Dateien mit der ausgewählten Dateistruktur werden durchsucht.
FILE-STRUCTURE = *ANY
Durchsucht alle Dateien mit SAM, PAM und ISAM-Struktur.
FILE-STRUCTURE = list-poss(3): *SAM / *PAM / *ISAM
Die Dateistruktur der zu durchsuchenden Dateien muss SAM, PAM oder ISAM entsprechen. Es kann auch eine Liste angegeben werden.
SIZE = *ANY / *INTERVAL(…)
Nur Dateien mit der ausgewählten Speicherallokierung werden durchsucht.
SIZE = *ANY
Die Größe der Dateien wird nicht beachtet.
SIZE = *INTERVAL(…)
Die Größe der Dateien muss innerhalb dieses Intervalls liegen.
FROM = 1 / <integer 1..2147483647 pam pages>
‚Von‘ Angabe des Größen Intervalls
TO = 2147483647 / <integer 1..2147483647 pam pages>
‚Bis‘ Angabe des Größen Intervalls
CODED-CHARACTER-SET = *ANY / list-poss(10): <name 1..8> / *EBCDIC /*ISO
Selektiert Dateien nach deren CODED-CHARACTER-SET (CCS).
Der Nutzer muss darauf achten, unter PATTERN ein für die Suche sinnvolles Suchpattern anzugeben. Siehe dazu die Hinweise zum Operanden PATTERN.
CODED-CHARACTER-SET = *ANY
Der CCS der Dateien wird nicht beachtet.
CODED-CHARACTER-SET = list-poss(10): <name 1..8>
Es werden nur Dateien durchsucht, die den angegebenen CCS haben. Eine Liste von mehreren CCS kann angegeben werden.
CODED-CHARACTER-SET = *EBCDIC
Es werden alle Dateien mit einem EBCDIC-Zeichensatz durchsucht. Konkret sind das alle CCS mit einem ‚EDF‘ Präfix.
CODED-CHARACTER-SET = *ISO
Es werden alle Dateien mit einem ISO-Zeichensatz durchsucht. Konkret sind das alle CCS mit einem ‚ISO‘ Präfix.
SEARCH-OPTIONS = *PARAMETERS(...)
Optionen, um das Suchverhalten des FIND-FILE Kommandos zu beeinflussen.
MATCH-LIMIT = *NO-LIMIT / <integer 1..255>
Gibt an, ab wie vielen Treffern in einer Datei in dieser nicht mehr weitergesucht wird.
MATCH-LIMIT = *NO-LIMIT
Es werden alle gefundenen Treffer ausgegeben.
MATCH-LIMIT = <integer 1..255>
Es werden nur die Treffer bis zu dieser Anzahl ausgegeben, danach wird die Suche in einer Datei abgebrochen.
OUTPUT-OPTIONS = *PARAMETERS(…)
Ausgabe-Optionen des Kommandos.
SHOW-RESULT = *MATCHES(…) / *FILE-NAMES(…)
Gibt an, ob die gefundenen Treffer oder nur Dateinamen angezeigt werden.
SHOW-RESULT = *MATCHES(…)
Gibt an, dass die gefundenen Treffer ausgegeben werden.
LINES-BEFORE = 0 / <integer 0..10>
Wie viele Zeilen vor einer Zeile mit einem Treffer ausgegeben werden.
LINES-AFTER = 0 / <integer 0..10>
Wie viele Zeilen nach einer Zeile mit einem Treffer ausgegeben werden.
MAX-LINE-LENGTH = *STD / <integer 30..132>
Gibt die maximale Länge einer Ausgabezeile an.
MAX-LINE-LENGTH = *STD
Der maximale Wert ist abhängig von dem Ausgabe-Wert (OUTPUT). Diese Varianten existieren:
SYSOUT: 80 Zeichen
SYSLST: 132 Zeichen
Datei: MAX-LINE-LENGTH hat keine Auswirkung
MAX-LINE-LENGTH = <integer 30..132>
Der angegebene Wert wird durch das Ausgabemedium beschränkt und darf nur kleiner als dieser sein. Ein höherer Wert hat keine Auswirkung auf das Programm.
POSITION = *NO / *YES(…)
Fügt die Position des gefundenen Patterns vor der Ausgabezeile ein.
| Dateityp | Prefix | Erklärung |
|---|---|---|
| SAM | REC#:BYTE#: | Werden mit der Satznummer (vom Start der Datei gezählt) und über die Byte-Position innerhalb des Satzes angegeben |
| ISAM | PRIMARY-KEY:BYTE#:
| Werden über den Primary-ISAM-Key und die Byte-Position innerhalb des Satzes angegeben. |
| PAM | BLK#:BYTE#: | Bei Dateien ohne Satzstruktur wird die Position über die logische Blocknummer und die Byte-Position innerhalb dieses Blocks definiert |
POSITION = *NO
Die Position des Treffers wird nicht mit ausgegeben.
POSITION = *YES(…)
Die Position wird, wie oben angegeben, vor der Ausgabenzeile mit ausgegeben.
SHOW-LABEL = *NO / *YES
Zusätzlich zu der numerischen Positionsangabe wird auch ein Label mit ausgegeben, das den Wert beschreibt.
- SAM: REC=1:BYTE=5:
- ISAM: ISAMKEY=00010OUT:BYTE=5:
- PAM: BLK=5:BYTE=10:
SHOW-LABEL = *NO
Standardmäßig werden die Label für die Positionsangabe nicht ausgegeben.
SHOW-LABEL = *YES
Mit SHOW-LABEL = *YES können die Label der Positionsangabe mit ausgegeben werden.
SHOW-RESULT = *FILE-NAMES(…)
Mit dieser Option werden nur die Dateinamen ausgegeben.
LIST-FILES = *WITH-MATCHES / *WITHOUT-MATCHES / *BOTH
Selektiert, welche Dateinamen angezeigt werden.
LIST-FILES = *WITH-MATCHES
Nur Dateinamen ausgeben, die das angegebene Suchmuster enthalten.
LIST-FILES = *WITHOUT-MATCHES
Nur Dateinamen ausgeben, die das Suchmuster nicht enthalten.
LIST-FILES = *BOTH
Alle Dateien anzeigen, die durchsucht werden.
MATCH-COUNTER = *NO / *YES
Gibt an, ob zusätzlich zu den Dateinamen auch die Anzahl der Treffer vor dem Dateinamen angezeigt wird.
MATCH-COUNTER = *NO
Die Anzahl der Treffer wird nicht ausgegeben.
MATCH-COUNTER = *YES
Die Anzahl der Treffer wird vor dem Dateinamen ausgegeben.
OUTPUT = *SYSOUT / *SYSLST / <filename_1..54_without-generation_without-wildcards(80)> / *NONE
Bestimmt, wohin der Report ausgegeben werden soll.
OUTPUT = *SYSOUT
Die Ausgabe erfolgt über SYSOUT. Die maximale Ausgabelänge beträgt hierbei 80 Zeichen.
OUTPUT = *SYSLST
Die Ausgabe erfolgt über SYSLST. Die maximale Ausgabelänge beträgt hierbei 132 Zeichen.
OUTPUT = <filename_1..54_without-generation>
Die Ausgabe wird in die angegebene Datei geschrieben. Bei Satz-basierten Dateien (SAM und ISAM) werden die kompletten Sätze in die Ausgabedatei geschrieben.
Bei PAM Dateien ist die Begrenzung, wie bei *SYSLST, bei 132 Zeichen.
OUTPUT = *NONE
Die Ausgabe wird komplett unterdrückt.
Kommando-Returncode
(SC2) | SC1 | Maincode | Bedeutung |
|---|---|---|---|
0 | CMD0001 | Kommando wurde erfolgreich ausgeführt | |
| 2 | 0 | CMD0002 | Kommando wurde ausgeführt, das Pattern wurde nirgends gefunden |
32 | FNF0001 | Unerwarteter interner Fehler in FIND-FILE | |
64 | FNF0002 | Datei kann nicht geschlossen werden | |
64 | FNF0003 | Kommando wurde ausgeführt, keine Datei wurde durchsucht | |
64 | FNF0004 | Mindestens ein angegebener Operand ist ungültig | |
64 | FNF0005 | Die Datei in LIST-FILE-NAME konnte nicht verarbeitet werden |
Meldungen
Maincode | Meldung |
|---|---|
FNF0001 | Unerwarteter interner Fehler (&00) in FIND-FILE |
FNF0002 | DMS-Fehler (&00). Datei (&01) kann nicht geschlossen werden |
FNF0003 | Das Kommando wurde ausgeführt, keine Datei wurde durchsucht |
FNF0004 | Syntax Fehler |
FNF0101 | DMS-Fehler (DMS0533). Angegebene Datei (&00) existiert nicht |
FNF0102 | DMS-Fehler (&00). Datei (&01) kann nicht aufgelöst werden |
FNF0103 | DMS-Fehler (&00). Datei (&01) kann nicht zum Durchsuchen geöffnet werden |
FNF0104 | In der angegebenen LIST-FILE-NAME Datei kann kein gueltiger Dateiname gefunden werden |
FNF0105 | Die Dateinamen Wildcard konnte nur teilweise aufgelöst werden |
Ausgabe in S-Variable
Der Operand SHOW-RESULT des Kommandos legt fest, welche S-Variablen erzeugt werden. Folgende Angaben sind für SHOW-RESULT möglich:
Schreibweise im Kommando | gekürzte Schreibweise in Tabelle |
|---|---|
SHOW-RESULT = *MATCH(POSITION=*YES) | 1 |
SHOW-RESULT = *MATCH(POSITION=*NO) | 2 |
SHOW-RESULT = *FILE-NAMES | 3 |
Ausgabe-Information | Name der S-Variablen | Inhalt | Bedingung | |
|---|---|---|---|---|
Name der durchsuchten Datei | var(*LIST).F-NAME | <filename_1..54> | 1,2,3 | |
Dateistruktur | var(*LIST).F-STRUCT | SAM | 1,2,3 | |
Anzahl der gefundenen Treffer (gleichzeitig Länge der MATCHES Liste) | var(*LIST).MATCH-COUNT | <integer> | 1,2,3 | |
SAM: Logischer Block in der ein Treffer gefunden wurde | var(*LIST).RECORD(*LIST).POSITION(*LIST).BLK | <integer> | 1 | |
PAM: Logischer Block in der ein Treffer gefunden wurde | var(*LIST).DATA(*LIST).POSITION(*LIST).BLK | <integer> | 1 | |
SAM: Satznummer in der ein Treffer gefunden wurde | var(*LIST).RECORD(*LIST).POSITION(*LIST).REC | <integer> | 1 | |
ISAM: ISAM-KEY an der Stelle, an der ein Treffer gefunden wurde | var(*LIST).RECORD(*LIST).POSITION(*LIST).ISAM-KEY | <xstring_1..256> | 1 | |
SAM, ISAM: Bytenummer des Treffers innerhalb des logischen Blocks | var(*LIST).RECORD(*LIST).POSITION(*LIST).BYTE | <integer> | 1 | |
PAM: Bytenummer des Treffers innerhalb des logischen Blocks | var(*LIST).DATA(*LIST).POSITION(*LIST).BYTE | <integer> | 1 | |
SAM, ISAM: Länge des Treffers | var(*LIST).RECORD(*LIST).POSITION(*LIST).LEN | <integer> | 1 | |
PAM: Länge des Treffers | var(*LIST).DATA(*LIST).POSITION(*LIST).LEN | <integer> | 1 | |
PAM: Die Daten, in denen der Treffer enthalten ist | var(*LIST).DATA(*LIST).DATA | <cstring_1..256> | 1,2 | |
SAM, ISAM: Der Satz, in dem der Treffer enthalten ist | var(*LIST).RECORD(*LIST).RECORD | <cstring_1..256> | 1,2 | |
Beispiele
Für die folgenden Beispiele werden diese Dateien angenommen:
:X:$Y.TEST.SAM | :X:$Y.TEST.ISAM | :X:$Y.TEST.PAM |
BEISPIEL TEST BEISPIEL | 00001000BEISPIEL TEST BEISPIEL | F0F0F0F0 F1D6E4E3 C9D54040 |
Beispiel 1: Standardsuche über alle Dateien
/FIND-FILE TEST*,'test'
:X:$Y.TEST.ISAM: 00001000BEISPIEL TEST BEISPIEL :X:$Y.TEST.SAM: BEISPIEL TEST BEISPIEL
Beispiel 2: Suche mit Positionsangabe
/FIND-FILE TEST*,'test',POSITION=*YES
:X:$Y.TEST.ISAM: 00001000:17:00001000BEISPIEL TEST BEISPIEL :X:$Y.TEST.SAM: 1:9:BEISPIEL TEST BEISPIEL
Beispiel 3: Suche mit Positionsangabe und Label - SAM und ISAM
/FIND-FILE TEST*,'test',POSITION=*YES(SHOW-LABEL=*YES)
:X:$Y.TEST.ISAM: ISAMKEY=00001000:BYTE=17:00001000BEISPIEL TEST BEISPIEL :X:$Y.TEST.SAM: REC=1:BYTE=9:BEISPIEL TEST BEISPIEL
Beispiel 4: Suche mit Positionsangabe und Label - PAM
/FIND-FILE TEST.PAM,'outin',POSITION=*YES(SHOW-LABEL=*YES)
:X:$Y.TEST.PAM: BLK=1:BYTE=5:00001OUTIN
Beispiel 5: Suche mit SHOW-RESULT=*FILE-NAMES und MATCH-COUNTER
/FIND-FILE TEST*,'test',SHOW-RESULT=*FILE-NAMES(LIST-FILES=*BOTH, MATCH-COUNTER=*YES)
1: :X:$Y.TEST.ISAM 0: :X:$Y.TEST.PAM 1: :X:$Y.TEST.SAM
Beispiel 6: ISAM/SAM: S-Variable mit Positionsangabe
/DECLARE-VARIABLE OPS(TYPE=*STRUCTURE),MULTIPLE-ELEMENTS=*LIST /EXEC-CMD (FIND-FILE TEST*,’TEST’,OUTPUT-OPTIONS=*PARAMETERS(SHOW-RESULT=*MATCHES(POSITION=*YES))),STRUCTURE-OUTPUT=OPS /SHOW-VARIABLE OPS,INFORMATION=*PARAMETERS(NAME=*FULL-NAME(LIST-INDEX-NUMBER=*YES)) OPS#1.F-NAME = :X:$Y.TEST.SAM OPS#1.F-STRUCT = SAM OPS#1.RECORD#1.POSITION#1.BLK = 1 OPS#1.RECORD#1.POSITION#1.REC = 1 OPS#1.RECORD#1.POSITION#1.BYTE = 7 OPS#1.RECORD#1.POSITION#1.LEN = 4 OPS#1.MATCH-COUNT = 1 OPS#2.F-NAME = :X:$Y.TEST.ISAM OPS#2.F-STRUCT = ISAM OPS#2.RECORD#1.POSITION#1.ISAM-KEY = 00001000 OPS#2.RECORD#1.POSITION#1.BYTE = 15 OPS#2.RECORD#1.POSITION#1.LEN = 4 OPS#2.MATCH-COUNT = 1
Beispiel 7: PAM: S-Variable mit Positionsangabe
/DECLARE-VARIABLE OPS(TYPE=*STRUCTURE),MULTIPLE-ELEMENTS=*LIST /EXEC-CMD (FIND-FILE TEST*,X’F1D6E4E3’,OUTPUT-OPTIONS=*PARAMETERS(SHOW-RESULT=*MATCHES(POSITION=*YES))),STRUCTURE-OUTPUT=OPS /SHOW-VARIABLE OPS,INFORMATION=*PARAMETERS(NAME=*FULL-NAME(LIST-INDEX-NUMBER=*YES)) OPS#1.F-NAME = :X:$Y.TEST.PAM OPS#1.F-STRUCT = PAM OPS#1.DATA#1.POSITION#1.BLK = 1 OPS#1.DATA#1.POSITION#1.BYTE = 4 OPS#1.DATA#1.POSITION#1.LEN = 4 OPS#1.MATCH-COUNT = 1
Beispiel 8: ISAM/SAM: S-Variable ohne Positionsangabe
/DECLARE-VARIABLE OPS(TYPE=*STRUCTURE),MULTIPLE-ELEMENTS=*LIST /EXEC-CMD (FIND-FILE TEST*,’TEST’,OUTPUT-OPTIONS=*PARAMETERS(SHOW-RESULT=*MATCHES(POSITION=*NO))),STRUCTURE-OUTPUT=OPS /SHOW-VARIABLE OPS,INFORMATION=*PARAMETERS(NAME=*FULL-NAME(LIST-INDEX-NUMBER=*YES)) OPS#1.F-NAME = :X:$Y.TEST.SAM OPS#1.F-STRUCT = SAM OPS#1.MATCH-COUNT = 1 OPS#2.F-NAME = :X:$Y.TEST.ISAM OPS#2.F-STRUCT = ISAM OPS#2.MATCH-COUNT = 1
Beispiel 9: PAM: S-Variable ohne Positionsangabe
/DECLARE-VARIABLE OPS(TYPE=*STRUCTURE),MULTIPLE-ELEMENTS=*LIST /EXEC-CMD (FIND-FILE TEST*,X’F1D6E4E3’,OUTPUT-OPTIONS=*PARAMETERS(SHOW-RESULT=*MATCHES(POSITION=*NO))),STRUCTURE-OUTPUT=OPS /SHOW-VARIABLE OPS,INFORMATION=*PARAMETERS(NAME=*FULL-NAME(LIST-INDEX-NUMBER=*YES)) OPS#1.F-NAME = :X:$Y.TEST.PAM OPS#1.F-STRUCT = PAM OPS#1.MATCH-COUNT = 1
Beispiel 10: S-Variable mit SHOW-RESULT=*FILE-NAMES
/DECLARE-VARIABLE OPS(TYPE=*STRUCTURE),MULTIPLE-ELEMENTS=*LIST /EXEC-CMD (FIND-FILE TEST*,’TEST’,OUTPUT-OPTIONS=*PARAMETERS(SHOW-RESULT=*FILE-NAMES(MATCH-COUNTER=*YES))),STRUCTURE-OUTPUT=OPS /SHOW-VARIABLE OPS,INFORMATION=*PARAMETERS(NAME=*FULL-NAME(LIST-INDEX-NUMBER=*YES)) OPS#1.F-NAME = :X:$Y.TEST.SAM OPS#1.F-STRUCT = SAM OPS#1.MATCH-COUNT = 1 OPS#2.F-NAME = :X:$Y.TEST.ISAM OPS#2.F-STRUCT = ISAM OPS#2.MATCH-COUNT = 1
Beispiel 11: Eingabe einer Dateiliste
/&* Der Parameter 'FORM-NAME=*FILE-NAME' ist wichtig! /SHOW-FILE-ATTRIBUTES SELECT=*BY-ATTRIBUTES(FILE-STRUCTURE=*ISAM),OUTPUT=SH.OUT(FORM-NAME=*FILE-NAME) /FIND-FILE FILE-NAME=*FROM-FILE(LIST-FILE-NAME=SH.OUT),PATTERN='ISAM'