Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

@COPY (Format 1) - Einlesen einer Datei

&pagelevel(3)&pagelevel

Mit @COPY (Format 1) wird eine existierende Datei komplett in die aktuelle Arbeitsdatei eingelesen. Die Arbeitsdatei braucht dabei nicht leer zu sein. Die Arbeitsdateiposition, an der die Datei eingefügt werden soll, kann angegeben werden. Nach dem Einlesen wird die Datei wieder geschlossen.

Wenn in diesem Abschnitt von Datei die Rede ist, dann kann dies eine SAM-Datei, eine ISAM-Datei, ein Bibliothekselement oder eine POSIX-Datei sein.

Operation

Operanden

F-Modus, L-Modus

@COPY

{ LIBRARY = path1 ([ ELEMENT = ] elname [(vers)] [,eltype])
 | ELEMENT = elname [(vers)] [,eltype]
 | FILE = {path2 | *linkname} [,KEY = { LINENUMBER | DATA | IGNORE } ]
 | POSIX-FILE = xpath [,CODE = name] }

[ [,] { BEFORE | AFTER } line ]

LIBRARY=

Ein Bibliothekselement soll eingelesen werden. Dieses wird durch explizite
Angabe des Bibliotheksnamens und der Elementbezeichnung bestimmt.

path1

elname

vers

Name der Bibliothek.

Name des Elements.

Version des gewünschten Elements (siehe Handbuch LMS [14]). Wird vers
nicht angegeben oder wird *STD angegeben, wird die höchste vorhandene
Version des Elementes gewählt.

eltype

Typ des Elements. Zulässige Typangaben sind S,M, P, J, D, X, *STD und freie
Typnamen mit entsprechendem Basistyp. Wird eltype nicht angegeben,
wird der mit @PAR ELEMENT-TYPE voreingestellte Wert verwendet. Die
zulässigen Elementtypen und deren Bedeutung sind im Kapitel „Dateibearbeitung“ beschrieben.

ELEMENT=

Ein Bibliothekselement soll eingelesen werden. Dieses wird durch die
Elementbezeichnung ohne Angabe des Bibliotheknamens bestimmt. Es
wird implizit die mit @PAR LIBRARY voreingestellte Bibliothek verwendet
(sofern @PAR LIBRARY spezifiziert wurde, andernfalls wird die
Fehlermeldung EDT5181 ausgegeben).

Die Operanden elname, vers und eltype haben die gleiche Bedeutung
wie bei expliziter Angabe der Bibliothek (siehe oben).

FILE=

path2

Eine BS2000-Datei soll eingelesen werden.

Name der BS2000-Datei (voll qualifizierter Dateiname), die eingelesen
werden soll.

*linkname

Dateiname und die Dateiattribute sind in der Task File Table abgelegt.
Der Dateikettungsname darf nicht mit den Spezial-Dateinamen *BY-PRO-
GRAM vereinbart worden sein. Dies führt zum Fehler EDT4923. Ist der
Dateikettungsname nicht definiert, wird die Anweisung mit dem Fehler EDT5480
abgewiesen.
Ist der Dateikettungsname mit dem Spezial-Dateinamen *DUMMY vereinbart
worden, wird dies wie eine existierende leere Datei behandelt.

KEY=

Legt für ISAM-Dateien den Ort fest, an dem der ISAM-Schlüssel in der
Arbeitsdatei abgelegt wird. Für andere Dateitypen wird der Operand ignoriert.

LINENUMBER


Der ISAM-Schlüssel wird als Zeilennummer in der Arbeitsdatei abgelegt.
Bereits existierende Zeilen mit den gleichen Zeilennummern werden
überschrieben. Die Operanden BEFORE oder AFTER dürfen nicht angegeben
werden. Kann der ISAM-Schlüssel nicht als Zeilennummer interpretiert
werden, weil die Schlüsselposition vom Standard abweicht, die Schlüssellänge
zu groß ist oder die Schlüssel nicht numerisch sind, wird die Meldung
EDT5459 ausgegeben und die Datei nicht eingelesen.

DATA

IGNORE

Der ISAM-Schlüssel wird Bestandteil des Datenbereichs der Arbeitsdatei.

Der ISAM-Schlüssel wird nicht in der Arbeitsdatei abgelegt. Dies ist der
Standardwert. Weicht die Schlüsselposition vom Standard ab, wird die
Meldung EDT5466 ausgegeben und die Datei nicht eingelesen.

POSIX-FILE=

 Es soll eine POSIX-Datei eingelesen werden.

xpath

Pfadname der POSIX-Datei, die in die aktuelle Arbeitsdatei eingelesen
werden soll.
Der Operand xpath kann auch als Zeichenfolgevariable angegeben
werden. Er muss als Zeichenfolgevariable angegeben werden, wenn der Pfadname
Zeichen enthält, die in der EDT-Syntax eine Sonderbedeutung haben
(z.B. Leerzeichen, Semikolon im F-Modus oder Komma).

CODE=

Es wird festgelegt, welcher Zeichensatz für die POSIX-Datei angenommen
wird. Da POSIX-Dateien innerhalb des POSIX-Dateisystems kein Zeichensatz
zugeordnet werden kann, ist hier eine Angabe des Anwenders
erforderlich.

Wird CODE nicht angegeben, wird für die Datei der mit @PAR CODE
eingestellte Zeichensatz angenommen.

name

Zeichensatz der einzulesenden POSIX-Datei. Als name muss der Name
eines gültigen Zeichensatzes angegeben werden (siehe Abschnitt
„Zeichensätze“).

EBCDIC

Das Schlüsselwort EBCDIC wird nur noch aus Kompatibilitätsgründen als
Synonym für den Zeichensatz EDF041 unterstützt.

ISO

Das Schlüsselwort ISO wird nur noch aus Kompatibilitätsgründen als
Synonym für den Zeichensatz ISO88591 unterstützt.

BEFORE

Die Datei wird vor der angegebenen Arbeitsdateizeile eingefügt. Der
Operand darf nicht gleichzeitig mit KEY=LINENUMBER angegeben werden.

AFTER

Die Datei wird nach der angegebenen Arbeitsdateizeile eingefügt. Der
Operand darf nicht gleichzeitig mit KEY=LINENUMBER angegeben werden.

line

Zeilennummer, vor oder nach der eingefügt wird.

Existiert die angegebene Datei nicht oder ist sie nicht wie erforderlich zugreifbar bzw. kann die Datei nicht erfolgreich eingelesen werden, wird die Anweisung mit einer entsprechenden Fehlermeldung abgewiesen.

Wird weder BEFORE noch AFTER angegeben und ist der Operand KEY ungleich LINENUMBER, dann wird die Datei nach der letzten Zeile der aktuellen Arbeitsdatei eingefügt.

Die Zeilennummern der Arbeitsdatei werden beim Einlesen von ISAM-Dateien mit Operand KEY=LINENUMBER aus dem ISAM-Schlüssel der Datei gebildet, in allen anderen Fällen nach dem Verfahren Einfügen zwischen zwei Zeilen (siehe Abschnitt „Zeilennummernvergabe“).

Ist die aktuelle Arbeitsdatei leer und hat den Zeichensatz *NONE, erhält die Arbeitsdatei den Zeichensatz der einzulesenden Datei. Ist dieser *NONE, erhält die Arbeitsdatei den Zeichensatz EDF03IRV.

Hat die Arbeitsdatei bereits einen Zeichensatz, dann werden die einzulesenden Sätze vom Zeichensatz der Datei in den Zeichensatz der Arbeitsdatei konvertiert. Enthält die einzulesende Datei Zeichen, die im Zeichensatz der Arbeitsdatei nicht darstellbar sind, werden diese durch ein Ersatzzeichen ersetzt, sofern ein solches spezifiziert ist (siehe
@PAR SUBSTITUTION-CHARACTER), andernfalls wird die Datei nicht eingelesen und die Fehlermeldung EDT5453 ausgegeben.

Liegt die Datei in einem Unicode-Zeichensatz vor und enthält sie ungültige Bytefolgen, z.B. Surrogate-Zeichen, kann sie auch bei Angabe eines SUBSTITUTION-CHARACTERS nicht eingelesen werden. In diesem Fall wird das Lesen mit der Meldung EDT5454 abgewiesen.

Wird die Anweisung mit [K2] unterbrochen und der EDT-Lauf mit /INFORM-PROGRAM fortgesetzt, so wird die Bearbeitung der Anweisung abgebrochen und die Meldung EDT5501 ausgegeben.

Beispiel

@COPY LIBRARY=MACLIB(ELEMENT=XYZ,M) AFTER 12.3

Das Element mit dem Namen XYZ, der höchsten vorhandenen Version und dem Elementtyp M (Makro) aus der Bibliothek MACLIB wird vollständig in die aktuelle Arbeitsdatei nach der Zeile 0012.3000 eingefügt.

@PAR LIBRARY=DATEN

@COPY ELEMENT=PERSONAL(@),D

Das Element mit dem Namen PERSONAL, der höchsten vorhandenen Version und dem Elementtyp D (Textdaten) aus der Bibliothek DATEN wird nach der letzten Zeile der aktuellen Arbeitsdatei eingefügt.

@COPY FILE=DATEI.ISAM,KEY=LINENUMBER

Die ISAM-Datei DATEI.ISAM wird in die Arbeitsdatei eingelesen. Die Zeilennummern der Arbeitsdatei werden aus dem ISAM-Schlüssel gebildet. Eventuell schon vorhandene Zeilen werden dabei überschrieben.

@COPY POSIX-FILE=/home/user1/test/data,CODE=UTF8

Die POSIX-Datei data in dem Verzeichnis /home/user1/test mit dem Zeichensatz UTF8 wird nach der letzten Zeile der aktuellen Arbeitsdatei eingefügt. Die Datei wird dabei in den Zeichensatz der Arbeitsdatei konvertiert.