CX_ASCII_FILE::UTF16LittleEndianCode
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 | Position | Objekttyp | Kurzbeschreibung |
---|---|---|---|
Stack(IN) | Top | CX_ASCII_FILE | Datei |
Stack(OUT) | Top | - | - |