Lade...
 

TransTable

TransTable

TransTable

Stack
Stack Position Beschreibung
Stack(In) Top Zeichenkette
Stack(Out) Top -

Eine Übersetzungstabelle für die Anweisung Translate wird aufgebaut. Die Zeichenkette enthält eine gerade Anzahl Zeichen: Z0 Z'0 ... Zi Z'i ... mit der Aussage, dass bei der Übersetzung jedes Zeichen Zk durch Z'k ersetzt wird.
Die Übersetzungstabelle wird auch beim Einlesen einer Datei mit der Klasse CX_ASCII_FILE wirksam und kann verwendet werden, um Dateien in Nicht-ASCII-Formaten wie EBCDIC einzulesen.
Die Zeichenpaare, welche die Übersetzung definieren, können alle in einer Zeichenkette zusammengefasst werden. Es ist aber auch möglich, einen Vektor zu übergeben:

Stack
Stack Position Beschreibung
Stack(In) Top ein Vektor
Stack(Out) Top -

Die Vektorelemente sind Zeichenketten.
Folgende Zeilen sind  zum Beispiel äquivalent:

"0a1b2c3d" TransTable [ "0a" "1b" "2c" "3d" ] TransTable [ "0a1b" "2c3d" ] TransTable

 

Codebeispiel: Einlesen einer EBCDIC kodierten Datei mittels Übersetzungtabelle nach Windows-1252

// An (incomplete!) EBCDIC->Windows1252 translation table [ "\xC1\x41\xC2\x42\xC3\x43" // ABC "\xD1\x4A\xD2\x4B\xD3\x4C" // JKL "\xF0\x30\xF1\x31\xF2\x32" // 012 "\xA1\x7E\x4A\xA2\xE7\x3D" // ~¢= "\x30\x81\x31\x81" // undefined ebcdic codes ] TransTable CreateTransObject(CX_ASCII_FILE) -> file // Set encoding to Windows1252, because the translation table above specifies // the conversion of bytes from EBCDIC to Windows1252. "windows1252" file Call(SetCodepage) "ebcdic-file.txt" file Put(fileName) file Call(Read) // process data