- FC File-Conversion: Datei umsetzen
FC [datei1] [, datei2] [, ?] [, reclim] [, konst] [, opt] [, LEN=length]
Die Eingabedatei (datei1) wird in eine zweite Datei (datei2) mit frei wählbarem Datenformat umgesetzt.
datei1 Name der Eingabedatei bzw. Komma, falls in die Ausgabedatei Sätze mit einen fest vorgegebenen Füllzeichen geschrieben werden sollen.
datei2 Name der Ausgabedatei.
Die Dateiattribute der Ausgabedatei können in der FC-Maske (siehe unten) eingetragen oder über ein zuvor abgesetztes FILE-Kommando mit LINK=OUTFCB bestimmt werden.
Die FC-Maske wird angezeigt bei Angabe des Kommandos FC ohne Parameter bzw. bei Angabe der Dateinamen, gefolgt von einem Fragezeichen (FC [datei1],datei2,?).
Das FILE-Kommando zum Festlegen der Dateiattribute der Ausgabedatei kann z.B. wie folgt aussehen: /FILE datei2,LINK=OUTFCB,FCBTYPE=ISAM,RECFORM=F, RECSIZE=4000,KEYPOS=20,KEYLEN=12,BLKSIZE=(STD,2),SPACE=(30,30).
Anstelle des Namens der Ausgabedatei kann im FC-Kommando auch OUTFCB angegeben werden. In diesem Fall wird der Dateiname über den Link-Namen OUTFCB bestimmt.
? Das Fragezeichen kann im Anschluß an den Namen der Ausgabedatei angegeben werden und bewirkt, daß die FC-Maske angezeigt wird. In dieser Maske können die Dateiattribute und alle im folgenden beschriebenen Parameter eingegeben werden.
reclim maximale Anzahl der Sätze, die aus datei1 nach datei2 zu übertragen sind.
Falls datei1 nicht angegeben ist, werden entsprechend viele Leersätze in der Ausgabedatei angelegt.
Der Wert reclim=0 bewirkt, daß nur ein Open- und Close-Aufruf für die Ausgabedatei durchgeführt wird. Es werden keine Datensätze geschrieben.
Standard: reclim=Anzahl der Eingabesätze bzw. reclim=1, falls keine Eingabedatei angegeben wurde.
konst C'string| X'string'
Gibt ein Muster vor, mit dem die Ausgabesätze aufgefüllt werden, falls diese eine größere Länge haben als die Sätze der Eingabedatei. Das Muster kann auch aus mehr als einem Zeichen bestehen.
Standard: C'_'.
opt IK | EK | NA
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 Fcbtype SAM erzeugt werden. In diesem Fall erhalten die Ausgabesätze nach dem Satzlängenfeld eine 8-stellige Nummerierung.
Standard: kein IK. Ein ISAM-Schlüssel ist in den Daten der zu konvertierenden Datei enthalten. Falls diese ISAM-Schlüssel nicht in aufsteigender Reihenfolge vorliegen, ist die Option NA (Non Ascending Keys, siehe unten) anzugeben.
EK Eliminate Keys: Bei den Ausgabesätzen werden die in der Eingabedatei vorhandenen ISAM-Schlüssel ausgeblendet. Falls die Eingabedatei keine ISAM-Datei ist, bleibt die Option EK ohne Wirkung.
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 i.a. 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.
LEN=length Anzahl der Bytes in den zu erzeugenden Ausgabesätzen. Ein eventueller ISAM-Schlüssel und das Satzlängenfeld sind bei der Längenangabe zu berücksichtigen. Die Angabe LEN= bewirkt, daß Recform-V Sätze in angegebenen der Länge in die Ausgabedatei geschrieben werden.
Standard: Bei Ausgabedateien mit RECFORM=V ergibt sich die Satzlänge aus der Länge der Eingabesätze.
Hinweise:
Bei Programmphasen und PLAM-Bibliotheken wird die Konvertierung nach BLKCTRL=NO an das Dienstprogramm PAMCONV zur Ausführung weiter gereicht.
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).
Falls der Name der Eingabedatei in der FC-Maske leer gelassen wird, so wird eine Ausgabedatei im gewünschten Format mit Fill-Character aufgefüllten Sätzen erstellt. Zur Bestimmung der Satzlänge wird die Recsize-Angabe bzw. bei Recform=V die Angabe LEN= herangezogen. Die Anzahl der zu schreibenden Datensätze wird im Feld Record-Limit bestimmt.
Mit dem Kommando FC können auch SAM-/ISAM-Dateien in PAM-Dateien umgesetzt werden und umgekehrt. Es sind folgende Fälle zu unterscheiden:
SAM/ISAM --> PAM
1) Eingabedatei: BLKSIZE = (STD,1)
Die Eingabedatei (SAM/ISAM) wird blockweise gelesen und als PAM-Datei weggeschrieben. Es werden keine Dateninhalte verändert.
2) Eingabedatei: BLKSIZE > (STD,1)
Es wird unterstellt, daß die ersten 16 Byte der Eingabesätze der SAM-/ ISAM-Datei (Recform=V) die Daten des PAM-Keys enthalten. Daran anschließend werden 2048 Byte Daten für einen vollen PAM-Block erwartet.
PAM --> SAM/ISAM
1) Ausgabedatei: BLKSIZE = (STD,1)
Die Eingabedatei wird blockweise in die Ausgabedatei übertragen. Es werden keine Dateninhalte verändert. Es wird lediglich der FCBTYP der Ausgabedatei von PAM nach SAM/ISAM umgewandelt.
2) Ausgabedatei: BLKSIZE > (STD,1)
In den ersten 16 Datenbytes jedes Ausgabesatzes wird der PAM-Key des gelesenen Blocks abgelegt. Daran anschließend werden die 2048 Byte Daten des gelesenen PAM-Blocks angefügt.