Lade...
 

CX_ASCII_FILE::UTF16BigEndianCode

CX_ASCII_FILE::UTF16BigEndianCode

Beschreibung:

Der Aufruf dieser Funktion legt fest, dass beim Einlesen (Read bzw. ReadIntoBuffer) und Schreiben (Write bzw. WriteFromBuffer) der Datei der Unicode-Zeichensatz UTF-16 benutzt wird.

Da Zeichen unter UTF-16 in Einheiten der Größe von zwei Bytes kodiert werden, gibt es das Problem der Byte-Reihenfolge. Daher ist zwischen UTF-16-BigEndian und UTF-16-LittleEndian zu unterscheiden.

Da UTF-16 ein Zeichensatz mit variabler Zeichenlänge ist, ist die Verwendung CX_ASCII_FILE im Fix-Mode(SetRecordFormat) nicht erlaubt, während UTF-16 als Zeichensatz gesetzt ist. Die Aufrufe Write und Read brechen in diesem Fall mit einer Fehlermeldung ab.

Das Umschalten zwischen Zeichensätzen ist auch zwischen zwei Lesevorgängen erlaubt.

Code-Beispiel:
//Dieses Beispiel konvertiert eine Datei von der Codepage Windows1252 nach UTF-16
Var(sourceFile, targetFile)
CreateTransObject(CX_ASCII_FILE) -> sourceFile
CreateTransObject(CX_ASCII_FILE) -> targetFile
"CX_ROOTDIR\\ansifile.txt" sourceFile Put(fileName)
"CX_ROOTDIR\\utf16file.txt" targetFile Put(fileName)
sourceFile Call(ANSICode)
targetFile Call(UTF16LittleEndianCode)
"\r\n" targetFile Call(SetRecordSeparator)

do
  sourceFile Call(Read) targetFile Call(Write)
  sourceFile Call(Eof) !
while

sourceFile Call(Close)
targetFile Call(Close)
Stack
Stack Position Objekttyp Kurzbeschreibung
Stack(IN) Top  CX_ASCII_FILE  Datei
Stack(OUT) Top  - -
Funktionsaufruf: Call(UTF16BigEndianCode)