S  =W Suchen mit Wegschreiben der Treffersätze
S ....=W [ datei | LINK=WFCB [,C] [,E|O] [,Q] [,BLK] [, f-attr|?] [ /[:col:] [ len] [, NS] ] ]
S ... steht für eine einfache oder zusammengesetzte Suchanweisung wie in den vorhergehenden Abschnitten "Suchen von Zeichenfolgen (einfaches Suchargument / mehrere Suchargumente)" beschrieben.
datei Die Treffersätze werden in die angegebene Datei oder falls kein Dateiname wurde, in die zuletzt eröffnete Write-Datei geschrieben.
LINK=WFCB Die Treffersätze werden in die mit /FILE ...,LINK=WFCB,... zugewiesene Datei geschrieben.
C Die Ausgabedatei wird nach dem letzten geschriebenen Satz geschlossen.
E Die Ausgabedatei wird mit Open=Extend eröffnet.
O Eine bestehende Ausgabedatei wird überschrieben (Open=Output).
Standard: siehe Hinweise.
Q Query: Der Benutzer wird bei jedem die Suchbedingung erfüllenden Satz gefragt, ob dieser Satz in die Write-Datei geschrieben werden soll. Durch Betätigung der ENTER-Taste wird der Satz weggeschrieben und zum nächsten Treffersatz positioniert. Durch Betätigung der K3-Taste wird der Satz nicht weggeschrieben und der nächste Treffer angeboten. Durch Überschreiben des im Kommandofeld stehenden S-Kommandos wird die Suche abgebrochen.
Standard: kein Query-Modus. Die Treffersätze werden ohne Benutzeranfrage in die Write-Datei geschrieben.
Die E/O und die Q-Option können, durch ein Komma getrennt, auch kombiniert angegeben werden.
BLK Write Block: Diese Option ist nur von Bedeutung, falls die aktuelle Display-Datei eine PAM-Datei ist und der Pamkey-Modus eingeschaltet ist (Kommando PK). Aufgrund der Option BLK werden die zu den Pam-Keys gehörigen Blöcke in die Write-Datei übertragen. Standard: Im Pamkey-Modus werden nur die Pam-Keys in eine SAM-Datei geschrieben.
f-attr Dateiattribute der Write-Datei entsprechend der Syntax eines FILE- oder ADD-FILE-LINK Kommandos.
Beispiel (Parameter gemäß FILE-Kommando):
FCBTYPE=SAM,RECFORM=F,RECSIZE=80,BLKSIZE=(STD,16),SPACE=(120,30),VOLUME=PVT001,DEVICE=D3480
Beispiel (Parameter gemäß ADD-FILE-LINK Kommando):
ACCESS=*SAM,REC-F=*FIX,REC-S=80,BUFFER-L=*STD(16)
? Es wird der SDF-Fragebogen des Kommandos /ADD-FILE-LINK (ADFL) ausgegeben.
Die vorgegebenen Werte der ersten beiden Parameter (LINK-NAME=WFCB und FILE-NAME=...) dürfen nicht verändert oder gelöscht werden.
Standard: Für die Ausgabedatei werden alle Dateiattribute der Display-Datei außer LOGLEN, VALLEN, VALPROP, DSPACE übernommen.
Falls f-attr angegeben, so werden nur diese Attribute für die Ausgabedatei verwendet. Es werden keine Attribute der Display-Datei in die Ausgabedatei übernommen. f-attr kann nicht zusammen mit LINK=WFCB (s.o.) angegeben werden.
col Es wird nur der Teil der Treffersätze ab Spalte :col: weggeschrieben (:1: bezeichnet den Satzanfang). Standard: Es wird ab Satzanfang weggeschrieben ( :1: ).
len Es wird ab der angegebenen Spalte/ab Satzanfang in der Länge len weggeschrieben. Standard: Es wird in der maximalen Länge (bis zum Satzende) geschrieben.
NS No Skip. Datensätze, bei denen die Spalte :col: außerhalb des beschriebenen Bereichs liegt, werden bei der Ausgabe in die Write-Datei nicht unterdrückt. Es wird ein Datensatz mit der Länge 4 erzeugt. Sätze dieser Art enthalten ein Satzlängenfeld, jedoch keine Daten.
Standard: Datensätze, bei denen die Spalte :col: außerhalb des beschriebenen Bereichs liegt, werden bei der Ausgabe in die Write-Datei unterdrückt.
Hinweise:
Bei ISAM-Dateien können im DUPKEY-Modus (Kommando DUPK) Sätze mit gleichen Schlüsseln in die Write-Datei übertragen werden. Bei ausgeschaltetem DUPKEY-Modus (Standard) wird bei mehreren Sätzen mit gleichen Schlüsseln nur der jeweils letzte in der Write-Datei gespeichert. Falls die Speicherung des jeweils ersten Datensatzes mit gleichen Schlüsseln gewünscht ist, so ist dazu die Suche vom Dateiende in Richtung Dateianfang auszuführen: S-,...=W...
Für die Write-Datei ist der DUPKEY-Modus wirksam, der zum Zeitpunkt des Eröffnens der Write-Datei (erstes W- / S..=W-Kommando) bestand. Ein nachträgliches Umschalten des DUPKEY-Modus hat auf die Write-Datei keine Wirkung, es sei denn, der Display-Modus wird vorübergehend beendet (Drücken der K1-Taste) und danach wieder aufgenommen.
Falls hinter dem Namen der Write-Datei keine der Optionen E/O (Extend/ Overwrite) angegeben wurde, 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 W / S...=W-Kommandos 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.
Beispiele:
S,:1:>X'0054'=W CFS.REC80
Zur Ermittlung der Datensätze mit einer bestimmten Länge kann mit dem Kommando O-4 das Satzlängenfeld in das Display miteinbezogen werden. Durch das angegebene Suche-Kommando (Syntax siehe Seite 8-) werden in einer RECFORM=V Datei alle Datensätze gefunden, deren Datenbereich eine Länge von mehr als 80 Bytes aufweist. Die gefundenen Sätze werden in die Datei CFS.REC80 kopiert.
S,L'a',>L'a'+<L'z',L'z'=W CFS.KLEIN
Es werden alle Datensätze, die Kleinbuchstaben enthalten, in die Datei CFS.KLEIN geschrieben. Syntax siehe Seite 8-.
S,'ABC'=W SAVE.ABC,FCBTYPE=SAM/:9:100
Vom ersten angezeigten Satz bis Dateiende wird in der Display-Datei der String 'ABC' gesucht. Jeder Satz, in dem mindestens ein Treffer gefunden wurde, wird ab Spalte 9 in der Länge 100 in die Ausgabedatei SAVE.ABC geschrieben. Die Datei SAVE.ABC soll unabhängig vom Format der im Display angezeigten Datei mit FCBTYPE=SAM angelegt werden. Standardmäßig, d.h. falls keine Dateiparameter angegeben wurden, erhält die Write-Datei die gleichen Datei- und Satzformate wie die Display-Datei.
Suchen mit Wegschreiben in eine CFS-Prozedurvariable
S ....=W, (&var) [ /[:col:] [ len] ]
Der Datensatz der Display-Datei, der beim Suchvorgang einen Treffer gebracht hat, wird vollständig oder als Teil in die CFS-Prozedurvariable mit dem angegebenen Namen übertragen.
:col: Es wird nur der Teil des Displaysatzes ab Spalte :col: in die Prozedurvariable übertragen (:1: bezeichnet den Satzanfang).
Standard: Es wird der vollständige Datensatz übertragen.
len Es wird ab der angegebenen Spalte/ab Satzanfang in der in len angegebenen Länge geschrieben.
Standard: Es wird in der vollen Länge, d.h. bis zum Satzende weggeschrieben. Die Maximallänge ist jedoch in jedem Fall auf 80 Bytes begrenzt.
Hinweise:
Falls mehrere Datensätze im Verlauf der Suche als Treffer gemeldet werden, so wird der jeweils letzte in die CFS-Prozedurvariable übertragen. Bei der Suche vom Dateiende zum Dateianfang (S-) wird der erste, in der Datei enthaltene Treffer, in die Prozedurvariable geschrieben.
Bei ISAM-Dateien können im DUPKEY-Modus (Kommando DUPK) Sätze mit gleichen ISAM-Schlüsseln in die Write-Datei übertragen werden.
Bei ausgeschaltetem DUPKEY-Modus (NDUPK, Standard) wird bei mehreren Sätzen mit gleichen Schlüsseln nur der jeweils letzte in der Write-Datei gespeichert.