Mit der Anweisung @XOPEN kann eine POSIX-Datei, die im POSIX-Dateisystem abgelegt ist, geöffnet und in die aktuelle Arbeitsdatei eingelesen werden. Diese Anweisung wird nur noch aus Kompatibilitätsgründen unterstützt. Es wird empfohlen, stattdessen die Anweisung @OPEN (Format 1) mit dem Operanden POSIX-FILE
zu benutzen.
Operation | Operanden | F-Modus, L-Modus |
@XOPEN | FILE=xpath [,CODE= { name | EBCDIC | ISO } ] |
xpath | Pfadname der POSIX-Datei, die geöffnet werden soll. Der Operand Existiert die angegebene Datei nicht oder ist sie nicht wie erforderlich |
CODE= | Es wird festgelegt, welcher Zeichensatz für die POSIX-Datei angenommen Wird |
name | Zeichensatz der zu öffnenden POSIX-Datei. Als |
EBCDIC | Das Schlüsselwort |
ISO | Das Schlüsselwort |
MODE= ANY | Legt fest, ob die Datei schon vorhanden sein soll bzw. sein darf. Falls die Datei schon existiert, wird sie zur Bearbeitung geöffnet und |
UPDATE | Die Datei, die zur Bearbeitung geöffnet und eingelesen werden soll, muss |
NEW | Die Datei wird neu angelegt und zur Bearbeitung geöffnet. Sie darf noch |
REPLACE | Falls die Datei schon existiert, wird sie zur Bearbeitung geöffnet, ihr alter Inhalt wird aber gelöscht und nicht in die Arbeitsdatei eingelesen. Falls die Datei nicht existiert, wird sie neu angelegt und zur Bearbeitung geöffnet. |
Ist die aktuelle Arbeitsdatei nicht leer, wird die Anweisung @XOPEN mit der Meldung EDT5191
abgewiesen. Im Gegensatz zu BS2000-Dateien oder Bibliothekselementen können POSIX-Dateien mehrfach in verschiedenen Arbeitsdateien geöffnet sein (in POSIX gibt es keinen Schutz gegen das mehrfache Öffnen einer Datei durch unterschiedliche Prozesse).
Das Einfügen der aus der Datei gelesenen Sätze erfolgt in der aktuellen Arbeitsdatei hinter Position 0.0000
nach dem Verfahren Einfügen zwischen zwei Zeilen (siehe Abschnitt „Zeilennummernvergabe“).
Hat die leere Arbeitsdatei den Zeichensatz *NONE
, erhält die Arbeitsdatei den Zeichensatz, der durch CODE
angegeben ist. Ist kein Zeichensatz angegeben, erhält die Arbeitsdatei den Zeichensatz, der mit @PAR CODE eingestellt ist.
Hat die leere Arbeitsdatei bereits einen Zeichensatz (z.B. durch vorhergehendes @CODE-NAME), 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.
Hinweis
Ist bei Beenden des EDT (@HALT, @END, @RETURN) eine Datei mit @XOPEN geöffnet und wird die Sicherungsabfrage EDT0900
ausgegeben, so wird der POSIX-Dateiname in der Form X=xpath
angezeigt.