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
....
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.