- Suchen von Zeichenfolgen (einfaches Suchargument)
S [-] [n] ,[col] [r] item [, R] [, NC] [, SR]
Vom ersten im Sichtfenster angezeigten Satz bis Dateiende/Dateianfang wird nach der angegebenen Zeichenfolge gesucht. Das Sichtfenster wird auf den Satz positioniert, der den ersten Treffer gebracht hat. Im Kommandofeld wird ein Suche-Kommando zum Auffinden des nächsten Treffers vorgegeben.
Durch Drücken der ENTER-Taste (Absenden des Eingabevorschlags) wird die Suche fortgesetzt.
- Rückwärtssuche: Die Suche erfolgt vom ersten im Sichtfenster angezeigten Datensatz in Richtung Dateianfang.
Standard: Suche in Richtung Dateiende.
n Anzahl der Sätze, in denen nach dem Suchargument gesucht wird.
Standard: unbegrenzt viele Sätze.
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 Spalte col1 gesucht und muß dort beginnen.
>:col1: | <:col1:
Die Zeichenfolge wird im Bereich ab Spalte col1 bis Satzende (>:col1:) bzw. vom Satzanfang bis Spalte col1 gesucht (<:col1:).
Standard: Suche in gesamten Spaltenbereich (von Spalte 1 bis Satzende).
r | < | -
> 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. In vielen Fällen können sogar die Hochkommas weggelassen werden, siehe Hinweise.
Enthält string Hochkommas ('), so müssen diese verdoppelt werden ('').
Die maximale Länge von string beträgt 128 Bytes.
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.
Über das Kommando SET SEARCHMODE=A kann der A-Modus voreingestellt werden. S,'string' wirkt dann wie S,A'string'. Die Rückkehr in den Standardmodus erfolgt durch SET SEARCHMODE=C.
Das Suche-Kommando bietet auch die Möglichkeit, mehrere Suchargumente mit Und-, Oder- bzw. Wildcard-Syntax zu verbinden. Die Syntax ist eine Aneinanderreihung einfacher Suchargumente und wird im nächsten Abschnitt "Suchen von Zeichenfolgen (mehrere Suchargumente)" ausführlich beschrieben.
R Reverse. Die Suche innerhalb der Datensätze erfolgt nicht von links nach rechts, sondern in umgekehrter Reihenfolge von rechts nach links. In diesem Modus können keine Und-, Oder-, Wildcard-Verknüpfungen von mehreren Suchbegriffen angegeben werden.
NC No Columns. Im DL-Modus (Display Long) wird bei der aktuellen Suche die Spaltenpositionierung auf den jeweiligen Treffer unterdrückt (gleiches Verhalten wie im DS-Modus). Im gleichen Zusammenhang ist auch der optionale Parameter NC im Kommando DL von Bedeutung (siehe Seite 7-). Durch DL,NC wird der NC-Modus für alle folgenden Suche-Kommandos in der aktuellen Datei eingestellt.
SR Single Record. Dieser Indikator ist nur von Bedeutung bei einer Negativ-Suche, d.h. bei der Suche nach einer Zeichenfolge ungleich einem Wert (z.B. S,-X'00').
Standardmäßig wird bei einer Negativ-Suche ohne Spaltenbereich ein Satz nur dann als Treffer angesehen, falls der Suchstring im gesamten Satz nicht vorkommt.
Im SR-Modus wird das erste Nicht-Vorkommen des Strings im Satz als Treffer gewertet. Bei der Angabe der Option R (siehe oben) wird automatisch der SR-Modus eingeschaltet.
Hinweise:
Bei der Angabe des Spaltenbereichs col in der Suchanweisung sind einige Unterschiede zur Spaltenbereichsangabe im EDT zu beachten:
1) :col1-col2: besagt, daß der in Hochkommas eingeschlossene Suchbegriff in dem angegebenen Spaltenbereich beginnen muß.
Im EDT muß der Suchbegriff vollständig im angegebenen Spaltenbereich enthalten sein.
2) :col: besagt, daß der in Hochkommas eingeschlossene Suchbegriff genau in der angegebenen Spalte beginnen muß.
Im EDT bewirkt die Angabe einer einzigen Spalte :col:, daß der Suchbegriff von Spalte :col: bis Satzende gesucht wird. In CFS wird dies durch die Angabe >:col2: erreicht, wobei col2=col-1 ist. Durch <:col: kann in CFS eine Zeichenfolge im Bereich vom Satzanfang bis zur Spalte col gesucht werden.
'string' kann in den meisten Fällen auch ohne Hochkommas angegeben werden (S,string). Die Hochkommas dürfen lediglich in den Fällen nicht weggelassen werden, in denen string Leerzeichen enthält bzw. von einem Ersatzstring (Seite 8-) oder Write-Kommando (Seite 8-) gefolgt wird.
Das einmal definierte Suchargument gilt für alle folgenden S-Kommandos und braucht im folgenden nicht mehr angegeben zu werden. Dies gilt solange, bis eine neue Zeichenfolge als Suchbegriff verwendet wird.
Ist der Benutzer nur an der Anzahl der Treffer in der Datei interessiert, so kann er dies folgendermaßen erreichen: Suche-Kommando S,'string'='',A angeben (nur im Non-Modify-Modus). In diesem Fall wird nur die Anzahl der gefundenen Treffer bis Dateiende gezählt.
Während der Ausführung eines langdauernden Suche-Kommandos kann durch Anwendung der K2-Taste (Verzweigen in die BS2000 Kommando-Ebene) und anschließendes /INTR R die begonnene Suche abgebrochen werden. Das Sichtfenster wird in diesem Fall auf die zuletzt gelesene Stelle in der Datei positioniert.
PAM: Suchen über Blockgrenzen
Bei PAM-Dateien mit BLKSIZE=(STD,1) muß der zu suchende String nicht vollständig in einem Datenblock enthalten sein. Falls der Suchbegriff (z.B. 'DATABASE') am Ende eines PAM-Blocks beginnt und sich am Anfang des nächsten PAM-Blocks fortsetzt (z.B. 'DA' + 'TABASE'), so wird diese Konstellation von CFS ebenfalls als Treffer erkannt.
Beispiele:
S,C'XYZ'
Suche ab dem ersten im Display angezeigten Satz bis zum Dateiende die Zeichenfolge C'XYZ'.
S,C'C'' '''
Suche nach der Zeichenfolge C'_' in der gesamten Datei (Hochkommas in dem zu suchenden String müssen verdoppelt werden).
S,L'Datei'
Suche alle Datensätze, die die Zeichenfolge 'Datei' enthalten. Die im String enthaltenen Kleinbuchstaben werden vor der Suche nicht umgesetzt.
S,A'datei'
Suche alle Datensätze, die die Zeichenfolge 'datei' enthalten. Bei der Suche ist die Groß-/Kleinschreibung der Zeichenfolge im Datensatz unerheblich.
S,:73:-' '
Suche in Spalte 73 eines jeden Satzes nach einem Zeichen ungleich Blank. Sätze mit weniger als 73 Stellen werden hier nicht als Treffer erkannt.
S,:1:>X'0054'
Zur Ermittlung von Datensätzen einer bestimmten Länge kann mit dem Offset-Kommando O-4 das Satzlängenfeld in das Display miteinbezogen werden. Durch das angegebene Suche-Kommando werden in einer RECFORM=V Datei alle Datensätze gefunden, deren Länge inclusive Satzlängenfeld größer als 84 Bytes ist.
S,'CFS'=''
Im Non-Modify-Modus: Es wird die Anzahl der Datensätze gezählt, in denen der Suchbegriff 'CFS' mindestens einmal vorkommt. Im Non-Modify-Modus wird keine Ersetzung des Suchstrings in der Datei vorgenommen.
S,'CFS'='',A
Im Non-Modify-Modus: Es wird die Gesamtanzahl der Treffer gezählt.
A: mehrfache Treffer in einem Datensatz werden entsprechend oft gezählt.
Im Modify-Modus würde der Suchstring in ISAM-Dateien bei jedem Vorkommen innerhalb eines Satzes gelöscht.
S,''
Gibt in der Hinweiszeile die Länge des ersten im Sichtfenster angezeigten Satzes aus (sucht nach dem Satzende).