- Unterstuetzung von UNICODE-Objekten in CFS
Ab der BS2000-Version 7.0 werden Unicode-Objekte unterstützt.
Unter Unicode-Objekten verstehen wir Dateien/PLAM-Bibliothekselemente, deren Datensätze in einem der folgenden CCS (Coded Character Sets) codiert sind: UTF16 (= UNICODE), UTF8, UTFE. Die Codes der alphanumerischen Zeichen (A - Z, a -z, 0 - 9) sind in UTF16 und UTF8 grundsätzlich verschieden vom EBCDIC-Code. Unter UTFE besitzen zumindest die alphanumerischen Zeichen die gleichen Codes wie in EBCDIC.
Im Display-/Modify-Modus von CFS werden die Inhalte von Unicode-Objekten in lesbarer Form dargestellt. Voraussetzung hierfür ist BS2000 >= 7.0 (XHCS Version >= 2.0), sowie der zur Codierung passende CCS-Eintrag im Systemkatalog bzw. im Inhaltsverzeichnis der PLAM-Bibliothek. Siehe hierzu auch die CFS User Option CCS.
DA UNI,EDF0xxx
Erkennt CFS eine Unicode-Datei am zugehörigen CCS-Eintrag, so wird intern das Kommando DA UNI,EDF04F ausgeführt. Der Benutzer kann jedoch selbst ein anderes Kommando DA UNI,EDF04xx eingeben, falls z.B. das Euro-Zeichen nicht an der erwarteten hexadezimalen EBCDIC-Position steht.
Das Kommando DA UNI,EDF04xx bewirkt folgendes:
a) Läuft CFS unter einer 8-bit Emulation, so werden alle Unicode-Zeichen, die im 8-bit Character Set EDF04xx darstellbar sind, zur Bildschirmanzeige in diesen Code umgesetzt.
b) Läuft CFS unter einer 7-bit Emulation, so werden alle Unicode-Zeichen, die im 7-bit Character Set EDF03IRV darstellbar sind, zur Bildschirmanzeige in diesen Code umgesetzt.
Alle Unicode-Zeichen, die im gewählten Code nicht definiert sind, werden als Schmierzeichen (X'08') dargestellt.
Im Hexadezimal-Modus von CFS (Display-Kommando H) werden die Daten der Unicode-Datei in der EDFxxx-Codierung angezeigt. Damit können auch im Hexa-Modus keine Unicode-Zeichen eingegeben werden, die außerhalb der EBCDIC Codevarianten liegen.
Um ein Unicode-Objekt im native-Modus, d.h. in der originalen, nicht umgesetzten Codierung anzuschauen, ist das CFS-Kommando NDA einzugeben. Bei UTF16-Dateien wird in diesem Fall jedes Zeichen als 2-Byte Folge dargestellt. Die gewohnten alphanumerischen Zeichen sind dann für den Benutzer nicht mehr erkennbar. Im Hexadezimalmodus können jedoch, falls bekannt, die Codierungen von fremdsprachlichen Zeichen (z.B. Kyrillisch) modifiziert werden.
DA CODE,UTFxxTOEBC
Mit diesem Kommando können die alphanumerischen Zeichen von Unicode codierten Dateien auch ohne korrekten CCS-Eintrag im Katalog, bzw. in älteren BS2000-Versionen < 7.0 in einer lesbaren Form am Bildschirm angezeigt werden. Eine Änderung der Dateninhalte ist hierbei jedoch nicht möglich.
Falls eine Datei keinen, bzw. einen falschen CCS-Eintrag im Katalog besitzt, kann man mit
DA CODE,UTF16TOEBCD
DA CODE UTF8TOEBCD
den tatsächlich für die Codierung der Daten verwendeten CCS testen und der Datei evtl. mit /MOD-FILE-ATTR datei,C-C-S=code zugewiesen.
Es ist zu beachten, daß bei der UTF16 Codierung alphanumerische Zeichen als 2-Byte mit führendem Leerzeichen dargestellt werden.
Inhalt von Dateien/Bibliothekselementen umcodieren
ONXCONV ['str1'= 'str2', ] CCS=ccsneu [, FCCS=ccsalt]
Die Sätze der durch den Action-Code X gekennzeichneten Dateien bzw. PLAM-Bibliothekselemente werden gemäß dem angegebenen Coded Character Set Namen umcodiert.
CCS=ccsneu
im System gültiger Coded Character Set Name.
Der Inhalt der Datenobjekte wird mittels XHCS auf den angegebenen CCS umcodiert.
Falls eine Datei im Katalog bereits mit einen CCS ccsx verknüpft ist, wird angenommen, daß die Sätze in diesem CCS vorliegen und es erfolgt eine Umcodierung in der Form ccsx --> ccsneu
FCCS=ccsalt
Falls die Datei im Katalog mit keinem CCS verknüpft ist, wird mit FCCS angegeben, in welcher Codierung die Eingabesätze vorliegen. In diesem Fall erfolgt die Umcodierung in der Form ccsalt --> ccsneu
Dateiinhalte suchen und Treffersätze wegschreiben
ONXFIND 'str' [= W datei]
Die Suchzeichenfolge str wird unabhängig von der Codierung auch in UTFxx Dateien gefunden. Dies wird erreicht, indem die UTF codierten Datensätze vor der Suche ohne Datenverlust in den EBCDIC-kompatiblen Zeichensatz UTFE umgesetzt werden.
Treffersätze werden in diesem Code in die Trefferdatei geschrieben. Dies hat zur Folge, daß die alphanumerischen Inhalte im EBCDIC-Umfeld gelesen und ohne Verlust geändert werden können.
Rewrite-Kommando für geänderte Trefferdateien
REWR datei Beim Zurückschreiben von Treffersätzen in die Originaldateien/Bibliothekselemente wird zuerst geprüft, ob das originale Datenobjekt in einem Unicode-Zeichensatz (UTFxx) vorliegt. Ist dies der Fall, so werden die entsprechenden Treffersätze von UTFE nach UTFxxx umgewandelt und erst danach in das Datenobjekt zurückgeschrieben.
Action-Code EDT / Kommando EDT
Falls unter BS2000 7.0 der neue EDT V17.0 eingesetzt ist, kann dieser von CFS mit der erweiterten Funktionalität benutzt werden. Diese beinhaltet:
a) Dateien mit Satzlängen > 256 Bytes werden automatisch ohne Datenverlust eingelesen und können mit UPD bzw. Write-Kommando zurückgeschrieben werden.
b) beliebige Dateien im Unicode Format können bearbeitet werden.
Standardmäßig verwendet CFS auch unter BS2000 7.0 den EDT im kompatiblen 16.6-Modus mit allen gegebenen Einschränkungen. Es existiert jedoch ein Kommando zum Einstellen des Verarbeitungsmodus des EDT:
EDTMODE COMP | UNI
Vor dem ersten Aufruf des Kommandos / Action-Codes EDT wird festgelegt, ob dieser im kompatiblen Format oder mit der erweiterten Unicode-Funktionalität aufgerufen wird. Der durch das Kommando- bzw. Action-Code benutzte EDT kann somit in unterschiedlichen Modi betrieben werden. Nachdem EDT geladen wurde, ist eine erneute Änderung des Modus für die jeweilige Aufrufart (Kommando/Action-Code) nicht mehr möglich.
Der EDT-Aufrufmodus kann auch im Modul CFSMAIN global für alle Benutzer eingestellt werden. Das Kommando EDTMODE übersteuert diese globale Voreinstellung.