FIND Zeichenfolgen in den Daten/Namen suchen
FIND [n,] param [=W datei [, E|O ] ] [, N] [, NO] [, C|NC] [, F] [, SKIPF] [, TYPE= t1, t2,...]
Auswahl aller Datenobjekte, die einen oder mehrere der angegebenen Suchbegriffe in ihren Daten bzw. in ihrem Namen enthalten. Die gefundenen Treffersätze und die entsprechenden Dateinamen können wahlweise in eine druckaufbereitete List-Datei geschrieben werden (=W datei). In der Dateienliste wird die Anzahl der Sätze ausgegeben, in denen der Suchbegriff mindestens einmal vorkommt.
n Beschränkung der Suche auf die ersten n Sätze. (Standard: alle Sätze).
param einfache oder mehrfache Suchanweisung.
einfache Suchanweisung: [ col ] [p] item
col Spaltenbereich in dem die gesuchte Zeichenfolge beginnen muß.
:col1-col2: Das erste Zeichen der gesuchten Zeichenfolge muß im Spaltenbereich zwischen col1 und col2 beginnen.
:col1: Die Zeichenfolge wird nur an der angegebenen Spalte col1 gesucht und muß dort beginnen.
>:col1: | <:col1: Die Zeichenfolge wird im Bereich ab Spalte col1 bis Satzende (>) bzw. vom Satzanfang bis Spalte col1 gesucht (<)
Standard: Die Suche erstreckt sich von Spalte 1 eines jeden Satzes bis zum jeweiligen Satzende.
p >    Suche nach einer Zeichenfolge > item
<    Suche nach einer Zeichenfolge < item
-    Suche nach einer Zeichenfolge ungleich item
Standard: Suche nach einer Zeichenfolge = item
item Suchzeichenfolge: C'string| L'string| X'string| A'string'
C'string' kann zu 'string' abgekürzt werden.
L'string': Kleinbuchstaben in string werden nicht in Großbuchstaben umgesetzt.
A'string': Bei der Suche werden Klein- und Großbuchstaben gleich behandelt. Beispiel: Der Suchbegriff A'CFS' wird als Treffer erkannt, falls im Datensatz die Zeichenfolge 'CFS' oder 'cfs' oder eine beliebige Kombination aus Groß- und Kleinbuchstaben enthalten ist.
Enthält string Hochkommas ('), so müssen diese verdoppelt angegeben werden ('').
Mehrfachsuche - Format 1: param [vk param] [vk param] .....
param einfaches Suchargument gemäß der oben beschriebenen Syntax.
vk Verknüpfungsoperator mit dem vorausgegangenen einfachen Suchargument.
, Oder-Verknüpfung.
+ Und-Verknüpfung.
*[n] Wildcard-Verknüpfung: Und-Verknüpfung, jedoch muß das zweite Suchitem im Datensatz nach dem ersten Suchitem vorkommen. Der optionale Zusatz n legt die Anzahl der zwischen den beiden Suchitems zu stehenden Trennzeichen fest.
Es können beliebig viele Konstrukte der Art vk such aneinandergereiht werden.
Bei Verknüpfung durch die Und-Bedingung '+' können auch geklammerte Ausdrücke angegeben werden: (.. , .. , ...)+(.. , .. , ...). Ein Beispiel hierzu ist auf Seite 8- beschrieben.
Hinweise:
Die Und-/Oder-Verknüpfung ist jeweils auf einen Datensatz bezogen. Dies bedeutet, daß beide Suchbegriffe im selben Satz enthalten sein müssen.
Eine ausführlichere Darstellung der Verknüpfungsoperationen finden Sie auf Seite 8-.
Mehrfachsuche - Format 2: ( )
Durch () wird eine spezielle Such-Maske angefordert. In ihr stehen dem Benutzer 18 Bildschirmzeilen zur Aufnahme von umfangreichen Suchargumenten zur Verfügung. Für eine Beschreibung der Such-Maske siehe Seite 8-.
Mehrfachsuche - Format 3:  %name | %? [, jrsave]
%name ist die Bezeichnung eines Parameter-Sets, unter dem zu einem früheren Zeitpunkt ein komplexes Suchargument gespeichert wurde (SP %name). Näheres hierzu siehe Seite 8-.
%?: Es werden alle in Frage kommenden Parametersets in einer Maske angezeigt. Durch Markieren mit 'x' kann ein Parameterset ausgewählt werden. Durch Markieren mit 'm' (Modify) wird der Inhalt des Parametersets angezeigt und kann noch verändert werden.
jrsave ist der Name der Datei, in der der Parameter-Set gespeichert ist. Standard: CFS.JRSAVE [.jobname] .
Mehrfachsuche - Format 4: ( s-dat )
s-dat ist der Name einer Datei (SAM), in der die Suchargumente festgehalten sind. Näheres hierzu siehe Seite 8-.
Mehrfachsuche - Format 5:| ?,%name
Durch ? wird das zuletzt definierte Suchargument wieder angezeigt.
Durch ?,%name wird die mit der in %name enthaltenen mehrfachen Suchbedingung ausgefüllte Such-Maske (siehe Format 2) angezeigt.
Wegschreiben der Treffersätze
=W datei [, E | O ]
Die Treffersätze werden in eine druckaufbereitete Ausgabedatei geschrieben. Die Namen der entsprechenden Datenobjekte werden in der Write-Datei ebenfalls dokumentiert. Bei Angabe der NO-Option (siehe unten) werden nur die Namen dokumentiert.
E Die Write-Datei wird mit Open=Extend eröffnet.
O Die Write-Datei wird mit Open=Output eröffnet.
Der Zusatz =W datei [, E | O ] kann auch in der Such-Maske (siehe oben: Mehrfachsuche - Format 2) bzw. in s-dat (siehe oben: Mehrfachsuche - Format 4) im Anschluß an den letzten Suchstring angegeben werden.
FIND ..., N Es werden die Namen der gerade durchsuchten Datenobjekte am Bildschirm angezeigt.
FIND ...., NO Names Only. Die Stringsuche erstreckt sich nur auf die Namen der Datenobjekte. Die Namen der Datenobjekte werden in die Write-Datei geschrieben. Der Anwendungsbereich dieser Option liegt vor allem im Durchsuchen mehrerer Bibliotheken nach Elementen mit einem bestimmten Namen. Siehe hierzu auch das Beispiel 2 weiter unten.
FIND ..., NC No Check for Continuation. Die Prüfung auf Fortsetzung eines BS2000-Kommandos /einer Makro-/Quellprogramm-Anweisung wird unterdrückt.
FIND ..., C Es werden bei Prozeduren/Makros/Quellprogrammen alle Sätze als logische Einheit betrachtet, die durch Fortsetzungszeichen miteinander verbunden sind. Dies bedeutet, daß z.B. der zusammengesetzte Suchbegriff 'FCB'*'BLKCTRL=DATA' in der Datei als Treffer gefunden wird, obwohl der Teilstring 'FCB' in einer Zeile, und der Teilstring 'BLKCTRL=DATA' in einer Folgezeile enthalten ist.
Bei der Ausgabe der Treffersätze in eine Datei werden alle Sätze der logischen Einheit in die Write-Datei übertragen. Falls der Suchstring vollständig in einem der Teilsätze enthalten ist, so wird dieser Teilsatz in der Ausgabedatei durch das Zeichen 'X' in Spalte 2 hervorgehoben.
FIND ..., F Find First. Nach dem ersten gefundenen Treffer wird die Suche für das Datenobjekt beendet. Es wird dann ein Treffer gemeldet. Mit dieser Option läßt sich auf schnelle Weise feststellen, ob in einem Datenobjekt ein vorgegebener Suchbegriff enthalten ist oder nicht. Standardmäßig werden nach einem gefundenen Treffer auch alle weiteren Sätze des Datenobjekts nach dem Suchbegriff durchsucht. Die Anzahl der Treffer wird in diesem Fall mit dem korrekten Wert angezeigt.
FIND ..., SKIPF
Skip Found. Es werden die Datenobjekte in der Liste aufgeführt, die den in der Suchbedingung angegebene String in keinem Satz enthalten.
FIND ..., TYPE=t1,t2, ...
Dieser Parameter ist nur von Bedeutung, falls Dateien durchsucht werden, hinter denen sich PLAM-Bibliotheken verbergen.
Die Suche erstreckt sich nur auf Elemente in den Bibliotheken, die vom angegebenen Typ sind. Beispiel: TYPE=J oder TYPE=J,S
Standardmäßig werden alle Elemente mit beliebigen Typ-Bezeichnungen in der Bibliothek durchsucht.
Hinweise:
Im Zusammenhang mit der Write-Option (=W ..) wird auf das Kommando REWR (Zurückschreiben der Write-Datei in die ursprünglichen Datenobjekte) hingewiesen. Das Rewrite-Kommando REWR (siehe Seite 7-) stellt das Gegenstück zur Write-Option dar.
Bei Auswahl von Dateien sind die in der Trefferliste aufgeführten Dateien i.a. nicht in alphabetisch aufsteigender Reihenfolge sortiert.
Wurde hinter dem Namen der Write-Datei keine der Optionen E/O (Extend/ Overwrite) angegeben, so gilt folgende Regelung:
Falls die Write-Datei im aktuellen CFS-Lauf zum ersten Mal angesprochen wird, so wird als Open-Modus in jedem Fall O (Overwrite) angenommen, d.h. die Datei wird neu angelegt bzw. überschrieben.
Falls in mehreren Selektionsläufen nacheinander die gleiche Write-Datei angegeben wurde, so wird sie standardmäßig mit Open=Extend eröffnet.
Durch die E-/O-Option kann vom Benutzer ein vom Standardfall abweichender Open-Modus angegeben werden.
CFS durchsucht PAM-Dateien, die Bibliotheken repräsentieren auf der Ebene der Bibliothekselemente und nicht auf der elementaren Datensatz- oder Blockebene. Falls dieses Verhalten nicht gewünscht ist, kann z.B. der Parameter TYPE=Z angegeben werden.
Aufgrund des oben beschriebenen standardmäßigen Verhaltens der User Option FIND wird die Gesamtanzahl der Treffersätze über alle Elemente in einer Bibliothek bzw. die Anzahl der Namen der Bibliothekselemente, die einen der gesuchten Strings enthalten.
Bei der User Option FIND werden Banddateien sowie durch HSMS ausgelagerte (migrierte) Dateien nicht berücksichtigt.
Beispiele:
FIND 'FLAG'*'STATEMENTS'=W DAT.FLAGS
In der Trefferliste werden alle Dateien/Bibliothekselemente ausgewählt, die mindestens einen Datensatz enthalten, in dem die Zeichenfolge 'FLAG' und weiter hinten die Zeichenfolge 'STATEMENTS' enthalten ist. Die gefundenen Treffersätze werden in die SAM-Datei DAT.FLAGS geschrieben.
FIND 'A1015'=W L.FNDLIST,NO
Anforderung: Es ist ein Quellprogramm mit dem Namen A1015 in mehreren Bibliotheken der eigenen Kennung bzw. im gesamten BS2000-System zu suchen. Die in Frage kommenden Bibliotheken können im aktuellen Fall durch die Eingabe von LIB im Feld FILENAME-SELECT vorselektiert werden. Die oben angegebene User Option FIND durchsucht die Namen aller Elemente der vorausgewählten Bibliotheken nach dem Vorkommen des Strings A1015. In der Datei L.FNDLIST werden die Elementnamen, die einen Treffer gebracht haben, zusammen mit dem entsprechenden Bibliotheksnamen aufgeführt. In der Dateienliste werden nur die Bibliotheken aufgeführt, die mindestens ein Element enthalten, dessen Name die angegebene Suchbedingung erfüllt. Mit dem Action-Code NP bzw. NPF kann sich der Benutzer das Inhaltsverzeichnis jeder einzelnen Bibliothek anzeigen lassen.
FIND :1:'$T'
Der Inhalt der Jobvariablen muß in Spalte 1 mit '$T' beginnen (Monitor-Jobvariablen, die auf normal beendete Aufträge hinweisen).
Weitere Beispiele für Suchargumente und die Verknüpfung von mehreren Suchargumenten finden Sie auf Seite 8- - 8-.