Anfang des Inhaltsbereichs

Diese Grafik wird im zugehörigen Text erklärt Dateischnittstelle Dokument im Navigationsbaum lokalisieren

 

In diesem Beispiel wird das Öffnen und Schließen von Dateien behandelt.

 

Vor der Unicode-Umstellung

 

data:

  begin of STRUC,

    F1 type c,

    F2 type p,

  end of STRUC,

 

  DSN(30) type c value 'TEMPFILE'.

 

STRUC-F1 = 'X'.

STRUC-F2 = 42.

 

* Daten auf Datei schreiben

open dataset DSN in text mode. ß Unicode-Fehler

transfer STRUC to DSN.

close dataset DSN.

* Daten aus Datei einlesen

clear STRUC.

open dataset DSN in text mode. ß Unicode-Fehler

read dataset DSN into STRUC.

close dataset DSN.

write: / STRUC-F1, STRUC-F2.

 

Das Programmbeispiel ist aus zwei Gründen nicht ablauffähig in Unicode. Zum einen muss in Unicode-Programmen bei OPEN DATASET das Dateiformat genauer spezifiziert werden, zum anderen dürfen nur noch rein zeichenartige Strukturen auf Text-Dateien geschrieben werden.

 

Je nachdem, ob das alte Dateiformat weiterhin gelesen werden können muß oder ob es möglich ist, die Daten in einem anderen, neuen Format abzulegen, sind verschiedene Umstellungsvarianten möglich, von denen zwei vorgestellt werden.

 

Nach der Unicode-Umstellung
Fall 1: Neue textuelle Ablage im UTF-8-Format

....

data:

  begin of STRUC2,

    F1 type c,

    F2(20) type c,

  end of STRUC2.

 

* Daten in Textform bringen

move-corresponding STRUC to STRUC2.

 

* Daten auf Datei schreiben

open dataset DSN in text mode for output encoding utf-8.

transfer STRUC2 to DSN.

close dataset DSN.

 

* Daten aus Datei einlesen

clear STRUC.

open dataset DSN in text mode for input encoding utf-8.

read dataset DSN into STRUC2.

close dataset DSN.

 

move-corresponding STRUC2 to STRUC.

write: / STRUC-F1, STRUC-F2.

 

Durch die textuelle Ablage im UTF8-Format wird sichergestellt, dass die erzeugten Dateien plattformunabhängig sind.

 

Nach der Unicode-Umstellung
Fall 2: Altes Nicht-Unicode-Format muss beibehalten werden

...

* Daten auf Datei schreiben

open dataset DSN in legacy text mode for output.

transfer STRUC to DSN.

close dataset DSN.

 

* read from file

clear STRUC.

open dataset DSN in legacy text mode for input.

read dataset DSN into STRUC.

close dataset DSN.

write: / STRUC-F1, STRUC-F2.

Durch die Verwendung von des LEGACY TEXT MODE ist sichergestellt, daß die Daten im alten Nicht-Unicode-Format abgelegt und gelesen werden. In diesem Modus ist es auch erlaubt, nicht zeichenartige Strukturen zu lesen oder zu schreiben. Es ist aber zu beachten, dass es in echten Unicode-Systemen zu Datenverlust und Konvertierungsfehlern kommen kann, wenn in der Struktur Zeichen enthalten sind, die in der Nicht-Unicode-Codepage nicht repräsentiert werden können.

Ende des Inhaltsbereichs