Your Browser is not longer supported

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

{{viewport.spaceProperty.prod}}

@CODENAME (Format 1) - Zeichensatz für Arbeitsdateien und Zeichenfolgevariablen einstellen

&pagelevel(3)&pagelevel

Mit Format 1 der Anweisung @CODENAME kann der vom EDT für eine Arbeitsdatei bzw. eine Zeichenfolgevariable verwendete Zeichensatz eingestellt werden. Die bei @CODENAME getroffene Festlegung hat Vorrang vor der impliziten Wahl eines Zeichensatzes durch den EDT, z.B. aufgrund des Eintrags im Dateikatalog.

Operation

Operanden

F-Modus, L-Modus

@CODENAME

name [, { LOCAL | GLOBAL | $0...$22 | #S0...#S20}] [,FORCE={YES | NO} ]

name

Name des einzustellenden Zeichensatzes. Der Zeichensatzname muss in XHCS bekannt sein, andernfalls wird die Anweisung mit der Meldung EDT4980 abgewiesen. Der angegebene Zeichensatz wird für eine oder mehrere Arbeitsdateien bzw. für die Zeichenfolgevariable eingestellt, die über die weiteren Operanden bestimmt werden.

LOCAL

Es wird der angegebene Zeichensatz für die gerade aktuelle Arbeitsdatei eingestellt. Falls die Arbeitsdatei nicht leer und nicht der Operand FORCE=YES gegeben wurde, werden die enthaltenen Daten in den neuen Zeichensatz umcodiert.

GLOBAL

Es wird der angegebene Zeichensatz global für alle Arbeitsdateien des EDT eingestellt. Dabei werden, falls nicht der Operand FORCE=YES gegeben wurde, alle nicht leeren Arbeitsdateien umcodiert. Die Einstellung gilt nicht für Zeichensätze von Zeichenfolgevariablen.

Der Operand wird hauptsächlich verwendet, wenn der EDT über die alte Unterprogrammschnittstelle (V16-Format) als Unterprogramm aufgerufen wurde. Wenn der EDT erkennt, dass für alle Arbeitsdateien der gleiche Zeichensatz eingestellt ist, wird dieser Zeichensatz an der alten Unterprogrammschnittstelle im globalen Kontrollblock EDTPARG eingetragen. Falls
das aufrufende Programm diesen Eintrag auswertet, empfiehlt es sich also, mit dem Operanden GLOBAL für alle Arbeitsdateien den gleichen Zeichensatz einzustellen (und diesen auch nachträglich nicht mehr zu ändern).

Das Verhalten an der alten Unterprogrammschnittstelle, falls kein globaler Zeichensatz eingestellt ist, sowie weitere Details zur Verwendung von Zeichensätzen an der Unterprogrammschnittstelle entnehme man dem Handbuch Unterprogramm-Schnittstellen [1].

$0..$22

Es wird der angegebene Zeichensatz für die angegebene Arbeitsdatei eingestellt. Falls die Arbeitsdatei nicht leer und nicht der Operand FORCE=YES gegeben wurde, werden die enthaltenen Daten in den neuen Zeichensatz umcodiert.

#S0..#S20

Es wird der angegebene Zeichensatz für die angegebene Zeichenfolgevariable eingestellt. Falls nicht der Operand FORCE=YES gegeben wurde, werden die in der Zeichenfolgevariablen enthaltenen Daten in den neuen Zeichensatz umcodiert.

FORCE=NO

Die Daten der angegebenen Arbeitsdatei bzw. Zeichenfolgevariablen werden in den angegebenen Zeichensatz umcodiert.

YES

Die Angabe von FORCE=YES ist nur für 7-Bit- und 8-Bit-Zeichensätze erlaubt und führt dann zum Umetikettieren der angegebenen Arbeitsdatei bzw. Zeichenfolgevariablen, d.h. der Inhalt der Arbeitsdatei bzw. der Zeichenfolgevariablen bleibt unverändert (als Bytefolge), wird aber in dem angegebenen Zeichensatz neu interpretiert. Diese Funktion dient dazu, Fehler bei der Zuweisung von Zeichensätzen - etwa durch fehlerhafte Einträge im DVS-Katalog - zu korrigieren. Bei Unicode-Zeichensätzen wird die Anweisung mit der Meldung EDT5494 abgewiesen.

Wird die Arbeitsdatei umcodiert und enthält sie Zeichen, die im Ziel-Zeichensatz nicht darstellbar sind, werden diese durch ein Ersatzzeichen ersetzt, sofern ein solches spezifiziert ist (siehe @PAR SUBSTITUTION-CHARACTER), andernfalls wird die @CODENAME-Anweisung abgewiesen und die Fehlermeldung EDT5453 ausgegeben. Bei Angabe von GLOBAL werden in diesem Fall bereits erfolgreich umcodierte Arbeitsdateien nicht zurück gewandelt.

Wenn einer Arbeitsdatei oder einer Zeichenfolgevariablen mit @CODENAME ein Zeichensatz zugewiesen wurde, gilt diese Zuweisung bis sie explizit durch eine erneute @CODENAME-Anweisung geändert wurde oder bis die Arbeitsdatei (z.B. mit @DELETE, Format 2) bzw. die Zeichenfolgevariable vollständig gelöscht wurde. Das bedeutet, dass alle Daten, die in die Arbeitsdatei bzw. Zeichenfolgevariable kopiert oder eingelesen werden, in diesen Zeichensatz umcodiert werden (siehe Abschnitt „Zeichensätze in Arbeitsdateien“).

Wenn in Arbeitsdatei 0 eine ISAM-Datei mit @OPEN (Format 2) real geöffnet ist, wird jede @CODENAME-Anweisung, die sich explizit oder implizit für diese Arbeitsdatei auswirkt, mit der Meldung EDT5452 abgewiesen.

Für eine geöffnete existierende Datei, die im Katalog den Zeichensatz *NONE eingetragen hat, bewirkt ein Aufruf der @CODENAME-Anweisung, dass beim Zurückschreiben durch @CLOSE oder @WRITE immer der beim Schreiben verwendete Zeichensatz explizit im Katalog eingetragen wird.