CONV Dateien in anderes Datenformat konvertieren
ONXCONV [ 'str1'= ... | PRE=prefix | SUF=suffix ] , f-attr | ? [, opt]
Die mit dem Action-Code X gekennzeichneten Dateien/Bibliothekselemente werden in ein anderes Datenformat konvertiert. Die Namen der konvertierten Datenobjekte werden gebildet aus den Namen der Eingabe-Dateien/Bibliothekselemente nach einer der nachfolgend aufgeführten Regeln.
'str1'= ... Namenstransformationsregeln
'str1'='str2' | 'str1'=DP[n][I] | 'str1'=DS[n][I]
'str1'='str2'
Die Zeichenfolge 'str1' wird durch 'str2' ersetzt.
'str1'=DP[n][I]
Vor der Zeichenfolge 'str1' werden alle bzw. n Stellen gelöscht.
'str1'=DS[n][I]
Nach der Zeichenfolge 'str1' werden alle bzw. n Stellen gelöscht (näheres siehe Seite 5-).
PRE=prefix
Ein Prefix wird vorangestellt, z.B. PRE=CONV.
SUF=suffix
Ein Suffix wird dem Namen angehängt, z.B. SUF=.CONV
Falls in der CONV-Anweisung weder 'str1'=..., noch PRE=prefix, noch SUF=suffix angegeben wurde, so wird die Eingabedatei/das Eingabeelement in eine Hilfsdatei umgesetzt und anschließend auf das ursprüngliche Datenobjekt zurückkopiert. Die Hilfsdatei wird danach gelöscht.
f-attr Attribute der Ausgabedatei. Hier wird das Datenformat der Ausgabedatei gemäß der Syntax eines FILE- oder ADD-FILE-LINK Kommandos festgelegt.
Beispiel (Parameter gemäß FILE-Kommando):
FCBTYPE=ISAM,KEYLEN=20,KEYPOS=8,BLKSIZE=(STD,16), SPACE=(64,64)
Beispiel (Parameter gemäß ADD-FILE-LINK Kommando):
ACCESS=*ISAM,SUPP=*DISK(ISAM=(KEY-LEN=20,KEY-POS=8)),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=OUTFCB und FILE-NAME=CFS...) dürfen nicht verändert oder gelöscht werden.
Zur Umsetzung der Datenstruktur der Dateien ist folgendes anzugeben:
BLKCTRL= PAMKEY | DATA | DATA4K | NO
Beispiel: ONXCONV BLKCTRL=DATA
Bei Programmphasen und PLAM-Bibliotheken wird die Variable Aktion ONXCONV BLKCTRL=NO an das Dienstprogramm PAMCONV zur Ausführung weiter gereicht.
opt eine der folgenden Angaben oder eine Kombination:
IK Insert Keys
EK Eliminate Keys
NA Non Ascending Keys
S Same attributes
LEN=n logische Satzlänge
Füllmuster C'string| X'string'
Füllmuster Vorgabe einer Zeichenfolge, mit der die Ausgabesätze aufgefüllt werden, falls diese eine größere Länge haben als die Sätze der Eingabedatei. Standard: C'_'.
IK Insert Keys: Für die Sätze der Ausgabedatei werden von CFS selbständig ISAM-Schlüssel generiert. Diese Schlüsselfelder können mit der Option IK auch bei Ausgabedateien vom Fcbtyp SAM erzeugt werden. In diesem Fall erhalten die Ausgabesätze nach dem Satzlängenfeld eine 8-stellige Nummerierung.
Standard: kein IK, d.h. der ISAM-Schlüssel ist in den Daten der zu konvertierenden Datei enthalten. Falls die ISAM-Schlüssel nicht in aufsteigender Reihenfolge vorliegen, so ist die Option NA (Non Ascending Keys, siehe unten) anzugeben.
EK Eliminate Keys: Bei der Konvertierung von ISAM nach SAM wird der ISAM-Schlüssel aus dem Eingabesatz ausgeblendet.
Standard: kein EK, d.h. bei Eingabedateien vom Typ ISAM werden die Keys beim Konvertieren nicht ausgeblendet.
NA Non Ascending Keys: Bei Konvertierung in eine ISAM-Datei enthalten die Eingabesätze die Daten für die ISAM-Schlüssel. Diese liegen jedoch nicht in aufsteigender Reihenfolge vor, so daß CFS mit dem ISAM-Makro STORE anstelle von PUT arbeiten muß. Die Angabe NA bewirkt eine Umsortierung der Sätze der Eingabedatei.
Standard: kein NA. Eine nicht aufsteigende Reihenfolge des Schlüsselbegriffs in der Eingabedatei führt auf einen DVS-Fehler.
S Same attributes: Die Ausgabedateien erhalten die in ONXCONV... angegebenen Dateiattribute. Alle nicht angegebenen Dateiattribute werden von den jeweiligen Eingabedateien übernommen.
Die Option S muß stets als letzte Option der Variablen Action CONV angegeben werden. Die S-Option kann ab BS2000-Version 9.5 verwendet werden.
Standard: Für alle bei ONXCONV ... nicht angegebenen Dateiattribute werden die Standards des BS2000 angenommen: FCBTYPE= ISAM, RECFORM=V, BLKSIZE=(STD,1), KEYPOS=5, KEYLEN=8.
LEN=n gibt die Gesamtlänge der Ausgabesätze an. Um die angegebene Ausgabelänge zu erreichen, werden die Sätze rechts mit Blanks aufgefüllt. Die vier Byte für das Satzlängenfeld werden bei der Angabe LEN= mitgezählt. Die RECSIZE im Katalog wird dadurch nicht beeinflußt und hat bei Dateien variabler Satzlänge den Wert RECSIZE=0.
Standard: Bei Ausgabedateien mit RECFORM=V ergibt sich die Satzlänge aus der Länge der Eingabesätze.
Hinweise:
Falls die Ausgabedatei im Format RECFORM=U gewünscht wird, muß ebenfalls der Parameter RECSIZE=8 angegeben werden (Mehrzweckregister 8 wird im Programm für die Länge der Ausgabesätze verwendet).
Bei der Angabe des Dateieiformats der Ausgabedateien ist zu beachten, daß für jedes nicht angegebene Dateiattribut der entsprechende Standardwert des File-Kommandos eingesetzt wird. Falls keine Dateieigenschaften angegeben wurden, so werden folgende Standardwerte angenommen:
FCBTYPE=ISAM,KEYPOS=5,KEYLEN=8,RECFORM=V,BLKSIZE=(STD,1).
Zum gleichen Thema siehe auch Beispiel 2 weiter unten.
Eine Ausnahme bei den Standardwerten der Dateiattribute bildet der Parameter BLKCTRL. Falls die angegebenen Dateiattribute mit BLKCTRL= beginnen, so erhalten die umgesetzten Dateien bis auf die Werte für BLKCTRL und PAD (falls angegeben), exakt die gleichen Dateieigenschaften wie die Eingabedateien. Siehe hierzu auch Beispiel 3 weiter unten.
Mit der Variablen Action ONXCONV können auch SAM-/ISAM-Dateien in PAM-Dateien umgesetzt werden und umgekehrt. Es sind dabei folgende Fälle zu unterscheiden:
SAM/ISAM --> PAM    ( ONXCONV .... , FCBTYPE=PAM )
1) Eingabedatei: BLKSIZE = (STD,1)
Die Eingabedatei (SAM-/ISAM-Datei) wird PAM-Blockweise gelesen und als PAM-Datei in die Ausgabedatei geschrieben. Es werden dabei keinerlei Dateninhalte verändert. In diesem Fall wird lediglich der FCBTYPE im Katalog in PAM umgewandelt.
2) Eingabedatei: BLKSIZE > (STD,1)
Es wird unterstellt, daß die ersten 16 Bytes der Eingabesätze der SAM-/ ISAM-Datei (Recform=V) die Daten des PAM-Keys enthalten. Danach werden 2048 Byte an Daten für jeweils einen PAM-Block erwartet.
PAM --> SAM/ISAM    ( ONXCONV .... , FCBTYPE=SAM/ISAM )
1) Ausgabedatei: BLKSIZE = (STD,1)
ONXCONV ... ,FCBTYPE=SAM/ISAM,BLKSIZE=(STD,1)
Die Eingabedatei wird PAM-Blockweise in die Ausgabedatei übertragen. Es werden dabei keinerlei Dateninhalte verändert. In diesem Fall wird lediglich der FCBTYP im Katalog von PAM nach SAM/ISAM umgewandelt.
2) Ausgabedatei: BLKSIZE > (STD,1)
z.B.: ONXCONV ... ,FCBTYPE=SAM/ISAM,BLKSIZE=(STD,2)
In den ersten 16 Byte jedes Ausgabesatzes wird der PAM-Key des Eingabe-Blocks abgelegt. Anschließend werden die 2048 Byte Daten des gelesenen PAM-Blocks abgelegt.
Beispiele:
ONXCONV SUF=.F80,RECFORM=F,RECSIZE=80,FCBTYPE=SAM
Die mit dem Action-Code X angekreuzten Dateien werden in SAM-Dateien mit RECFORM=F,RECSIZE=80 konvertiert. Die Namen der umgesetzten Dateien werden gebildet aus den Namen der Eingabedateien, wobei das Suffix '.F80' an den Namen angehängt wird.
ONXCONV PRE=#,IK,LEN=300
Die mit dem Action-Code X angekreuzten Dateien (Fcbtyp SAM oder ISAM) werden in ISAM-Dateien mit dem Standardformat des File-Kommandos: FCBTYPE=ISAM,RECFORM=V,KEYPOS=5,KEYLEN=8 konvertiert. Die ISAM-Schlüssel werden (zusätzlich zu evtl. schon vorhandenen Schlüsseln) neu generiert (IK). Die Sätze der Ausgabedateien werden mit Blanks auf 300 Byte (ISAM-Schlüssel und Satzlängenfeld nicht mitgerechnet) aufgefüllt. Sind Datensätze der Eingabedatei länger, so werden diese rechts abgeschnitten. Die Namen der Ausgabedateien werden aus den Namen der Eingabedateien und Voranstellung des Zeichens # gebildet (temporäre Datei).
ONXCONV BLKCTRL=DATA
Die mit dem Action-Code X angekreuzten Dateien werden in das interne Format BLKCTRL=DATA übergeführt. Die Eingabedateien werden nach erfolgreicher Ausführung der Operation durch die konvertierten Dateien überschrieben. Im Unterschied zum letzten Beispiel werden alle Attribute der Eingabedateien außer BLKCTRL automatisch, d.h. auch ohne Angabe der S-Option in die Ausgabedateien übernommen.
ONXCONV' '='.SAM',FCBTYPE=SAM,LEN=80
Die mit dem Action-Code X angekreuzten Dateien werden in Dateien mit FCBTYPE =SAM,RECFORM=V,BLKSIZE=(STD,1) konvertiert. Die Namen der Ausgabedateien werden gebildet, indem das Suffix '.SAM' an die Namen der Eingabedateien angehängt wird.
ONXCONV' '='.SAM',FCBTYPE=SAM,EK,S
Die mit dem Action-Code X angekreuzten Dateien werden in SAM-Dateien konvertiert. Im Unterschied zum letzten Beispiel erhalten die Ausgabedateien lediglich die Eigenschaft FCBTYPE=SAM. Die Werte für RECFORM, RECSIZE und BLKSIZE werden aus den jeweiligen Eingabedateien übernommen (S: Same attributes). Falls die Eingabedateien vom Fcbtyp ISAM sind, so werden die ISAM-Schlüssel bei der Konvertierung in SAM-Dateien aus den Datensätzen entfernt (EK: Eliminate Keys).
ONXCONV'.D.'='.D.NEU.',FCBTYPE=ISAM,KEYPOS=200, KEYLEN=20,IK
Die mit dem Action-Code X angekreuzten Dateien werden in ISAM-Dateien konvertiert. Die Namen der Ausgabedateien werden gebildet, indem in den Namen der Eingabedateien die Zeichenfolge '.D.' gesucht und durch '.D.NEU.' ersetzt wird. Findet sich in dem Namen einer durch X angekreuzten Datei die Zeichenfolge '.D.' nicht, so wird diese Datei nicht konvertiert.
Die erzeugten ISAM-Dateien werden mit KEYPOS=200 und KEYLEN=20 angelegt. Die Daten für die ISAM-Schlüssel werden von CFS selbst generiert und müssen in den sequentiellen Eingabedateien nicht vorhanden sein (IK: Insert Keys). Bei der Generierung der Schlüssel für die Ausgabedateien verfährt CFS nach folgender Regel: Die ersten 8 Stellen des Schlüssels sind numerisch (Schrittweite=10). Falls die zu erzeugenden Schlüssel eine größere Länge als 8 Byte haben, so werden die Stellen danach auf binär Null gesetzt.
Aufteilen einer sequentiellen Datei in kleinere, gleich große Teildateien
1) Ausgangsdatei mit dem Action-Code D (Display) markieren.
2) Kommando PAM wählen (Datei im PAM-Format darstellen). Damit wird es möglich, physikalische PAM-Blöcke der Eingabedatei in eine andere Datei zu übertragen. Im normalen Anzeigemodus können nur einzelne Datensätze in eine andere Datei geschrieben werden.
3) Anwendung des Write-Kommandos: Wn, subdatei. Es werden fortlaufend n PAM-Seiten der Eingabedatei in verschiedene Subdateien mit FCBTYPE=PAM geschrieben. Die Subdateien müssen unterschiedliche Namen erhalten.
4) Rückkehr in die Selektionsmaske von CFS (Kommando NP) und Auswahl aller erzeugten Subdateien.
5) Rückkonvertierung der Subdateien von FCBTYPE=PAM --> SAM:
ONXCONV SUF=.SAM,FCBTYPE=SAM