- IR Einfuegen Saetze aus anderer Datei
IR [n[+|-]] [, datei] [, params]
Es werden n Sätze aus der angegebenen Referenzdatei in die aktuelle Display-Datei kopiert.
n Anzahl der zu kopierenden Sätze.
Das Zeichen '$' anstelle einer Anzahl n steht für alle Sätze.
Standard: n = 1.
Die Schrittweite der eingefügten ISAM-Schlüssel berechnet sich aus der Differenz zwischen dem zweiten und dem ersten angezeigten Schlüssel dividiert durch die Anzahl n.
n+ Die Sätze werden mit der kleinstmöglichen Schrittweite beginnend vom unteren Schlüssel an eingefügt.
n- Die Sätze werden mit der kleinstmöglichen Schrittweite unterhalb des oberen Schlüssels eingefügt.
datei Referenzdatei, aus der die Sätze kopiert werden. Die Referenzdatei kann vom Fcbtyp SAM oder ISAM sein.
Standard: Falls datei nicht angegeben wurde, so wird auf die zuletzt eröffnete Referenzdatei zugegriffen.
params W | NW | K | KN | NK | B | C
oder eine Kombination dieser Werte getrennt durch Kommas.
W Wrap. Nach Erreichen des Endes der Referenzdatei wird der interne Zeiger wieder auf den Dateianfang gesetzt. Auf diese Weise können Datensätze aus der Referenzdatei wiederholt in die Display-Datei eingefügt werden.
NW No Wrap. Nach Erreichen des Endes der Referenzdatei bleibt der interne Zeiger dort stehen. Es wird kein weiterer Satz in die Display-Datei kopiert. Durch die B-Option (siehe unten) kann der interne Zeiger wieder auf den Beginn der Referenzdatei gesetzt werden.
Standard: NW.
K Keys. CFS fügt die Sätze der Referenzdatei entsprechend ihrem Originalschlüssel positionsgerecht in die Display-Datei ein (gestreute Einfügung).
Falls die Referenzdatei vom FCBTYPE=SAM ist, müssen die Daten für die ISAM-Schlüssel in den einzufügenden Sätzen enthalten sein.
Im K-Modus überschreiben Datensätze aus der Referenzdatei entsprechende Sätze mit den gleichen ISAM-Schlüsseln in der Display-Datei.
Im K-Modus ist ein zuvor abgesetztes DUPK-Kommando insofern wirksam, als Sätze aus der Referenzdatei mit gleichen ISAM-Schlüsseln wie in der Display-Datei, dort eingefügt werden können (kein Überschreiben). Dadurch ist es möglich, in der Display-Datei Datensätze mit gleichen ISAM-Schlüsseln zu erzeugen.
KN Keys No overwrite. Gleiche Funktion wie bei K (siehe oben), jedoch überschreiben Datensätze aus der Referenzdatei nicht Sätze mit den gleichen ISAM-Schlüsseln in der Display-Datei.
NK No Keys. Die in der Referenzdatei vorhandenen ISAM-Schlüssel werden beim Einfügen nicht mit übernommen. Die Referenzdatei wird wie eine sequentielle Datei behandelt. Die Sätze der Referenzdatei werden zwischen dem ersten und zweiten am Bildschirm angezeigten Satz in die Display-Datei eingefügt. Es werden neue ISAM-Schlüssel von CFS vergeben.
Standard: NK.
B Beginning. Die Referenzdatei wird wieder vom Anfang an gelesen. Diese Option sollte bei Ausgabe der Fehlermeldung "EOF on source-file" verwendet werden.
C Close. Die Referenzdatei wird nach dem Einfügen geschlossen. Standardmäßig bleibt die Referenzdatei solange geöffnet, bis CFS beendet oder ein IR-Kommando mit einer anderen Referenzdatei abgesetzt wird.
Hinweise:
Das IR-Kommando ist das Gegenstück zum W-Kommando bzw. zum Suche-Kommando mit kombiniertem Write (S...=W...). Mit dem Write-Kommando können bestimmte Sätze in eine Ausgabedatei von gleichem Format wie die Display-Datei geschrieben werden. Nach gesonderter Bearbeitung dieser Sätze in der Write-Datei können sie mit dem Kommando IR wieder in die Originaldatei eingespielt werden.
Falls sowohl die Display-, als auch die IR-Datei ISAM-Dateien sind, so müssen KEYPOS und KEYLEN in beiden Dateien übereinstimmen.
Bei Erreichen des Endes der Referenzdatei bleibt der interne Zeiger dort stehen. Durch IR [n],,B wird die Referenzdatei wieder vom Anfang gelesen.
Die Referenzdatei wird mit Verlassen des Display-Modus nicht geschlossen. Ein explizites Schließen der Referenzdatei kann mit der Option C im IR-Kommando (siehe oben) erreicht werden.
Beispiele:
IR 9999,CFS.DAT1
Es werden maximal 9999 Sätze der Datei CFS.DAT1 zwischen dem ersten und zweiten angezeigten Satz in die Display-Datei eingefügt. Es besteht jedoch die Einschränkung, daß nur soviele Datensätze eingefügt werden, wie freie Schlüssel zwischen dem ersten und zweiten Satz existieren. Gegebenenfalls wird der Einfügevorgang mit DUPKEY-Error abgebrochen.
IR 20,CFS.DAT2,W
Angenommen die Referenzdatei CFS.DAT2 enthält nur einen Datensatz, so wird dieser Satz dann 20 mal zwischen dem ersten und zweiten angezeigten Satz der Display-Datei eingefügt.
IR 999,CFS.DAT3,K
Angenommen Display-Datei und Referenzdatei CFS.DAT3 sind ISAM-Dateien mit dem gleichen Dateiformat. Es werden soviele Datensätze wie in der Datei CFS. DAT3 vorhanden, maximal jedoch 999 schlüsselgerecht in die Display-Datei übertragen (K-Option). Falls in der Datei bereits Sätze mit entsprechenden Schlüsseln enthalten sind, so werden diese durch die zu übertragenden Sätze überschrieben (nur falls NDUPK-Modus von CFS eingeschaltet ist).
Mischen von zwei sequentiellen Dateien
In der zu erzeugenden Ausgabedatei soll Satz 1 von Datei-1 vor Satz 1 von Datei-2 stehen, usw.
ONXCONV' '='.ISAM',FCBTYPE=ISAM,IK (IK: Insert Keys)
Die sequentiellen Dateien 1 und 2 werden mit der Variablen Action ONXCONV zunächst in zwei ISAM-Dateien konvertiert.
Action-Code M (Modify) bei der ersten der erzeugten ISAM-Dateien (Datei-1) eintragen. DUPKEY-Modus einschalten durch Kommando DUPK.
IR 9999,datei-2,K
Sätze der zweiten ISAM-Datei schlüsselgerecht hinter die entsprechenden Sätze von ISAM-Datei-1 einfügen.
ONXCONV'.ISAM'='.SAM',FCBTYPE=SAM,EK
Display von Datei-1 durch Betätigung der K1-Taste beenden und in eine sequentielle Datei konvertieren. Die ISAM-Schlüssel werden dabei gelöscht (EK).
In einer ISAM-Datei (Keypos=10, Keylen=20) soll die Zeichenfolge 'ABC' in den Schlüsseln durch 'XYZ' ersetzt werden. Die sich ergebenden Datensätze sollen ihrem neuen Schlüssel entsprechend eingereiht werden. Die dazu nötige Vorgehensweise wird i
S9999,:6-13:'ABC'=W CFS.DAT3
S9999,:6-13:'ABC'=D
ONXCONV' '='.SAM',FCBTYP=SAM
S9999,:6-13:'ABC'='XYZ'
ONXCONV'.SAM'='',FCBTYP=ISAM,KEYPOS=10,KEYLEN=20
IR9999,CFS.DAT3,K
Alle Datensätze aus der Display-Datei, die die Zeichenfolge 'ABC' enthalten, werden in die Datei CFS.DAT3 übertragen. Danach müssen diese Datensätze aus der Display-Datei gelöscht werden, da im letzten Schritt die gleichen Datensätze mit veränderten Schlüsseln an anderen Stellen wieder in die Datei eingefügt werden.
Datei CFS.DAT3 kann gesondert bearbeitet werden. Da sie vom Fcbtyp ISAM ist, können Schlüssel im CFS-Editor nicht mit Suchen und Ersetzen verändert werden. Letzteres ist nur möglich, falls die ISAM-Datei in eine sequentielle Hilfsdatei CFS.DAT3.SAM konvertiert und die ISAM-Schlüssel als normale Daten mit Suchen und Ersetzen verändert werden. Die sequentielle Hilfsdatei ist danach wieder in eine ISAM-Datei mit dem ursprünglichen Datenformat zurückzukonvertieren. Das Einbringen der so veränderten Datei CFS.DAT3 in die ursprüngliche Display-Datei erfolgt durch das Kommando IR 9999,CFS.DAT3,K.