Anfang des Inhaltsbereichs

Ermittlung von Feldeigenschaften  Dokument im Navigationsbaum lokalisieren

Die Klasse CL_ABAP_CHAR_UTILITIES bietet Attribute und Methoden an, die Eigenschaften einzelner Zeichen betreffen. Die Komponenten dieser Klasse sind alle statisch und öffentlich. Die Attribute sind schreibgeschützt und werden im Klassenkonstruktor initialisiert.

Attribut CHARSIZE

CHARSIZE TYPE I.

Das Attribut CHARSIZE gibt die Länge eines C(1)-Feldes in Bytes an, also 1 Byte in einem NUS und 2 oder 4 Byte in einem US.

Attribute MINCHAR, MAXCHAR

MINCHAR(1) TYPE C.

MINCHAR enthält in einem NUS das Zeichen mit der Hexadezimaldarstellung X'00', in einem US das Unicodezeichen U+0000.

MAXCHAR(1) TYPE C.

MAXCHAR enthält in einem NUS das Zeichen mit der Hexadezimaldarstellung X'FF', in einem US das Unicodezeichen U+FFFD.

Diese Werte dürfen nur in binären Vergleichen für folgende ABAP-Anweisungen benutzt werden:

  1. SORT ohne Zusatz AS TEXT
  2. IF mit den Operatoren <, >, <=, >=
  3. IF f1 BETWEEN f2 AND f3.
  4. IF f in sel.

Bei binären Vergleichen ist allerdings darauf zu achten, daß die Ergebnisse von der Plattform abhängen. So gilt zum Beispiel im Zeichensatz ISO-8859-1 die Reihenfolge 1 < A < Z < a < Ä < ü, in EBCDIC jedoch Ä < a < A < ü < Z < 1.

CLEAR feld WITH CL_ABAP_CHAR_UTILITIES=>MAXCHAR kann benutzt werden, um ein Feld mit einem Wert zu füllen, der größer oder gleich als alle Zeichenketten ist. Dies funktioniert auch auf Multibyte-NUS.

MINCHAR und MAXCHAR sind im allgemeinen keine gültigen Zeichen des gegenwärtigen Zeichensatzes. Insbesonders darf TRANSLATE f TO UPPER CASE nicht auf diese Attribute angewendet werden, weil das Ergebnis undefiniert ist. Die gleichen Einschränkungen gelten für alle Operationen wie zum Beispiel CS, NS, CP, NP oder SEARCH, die implizit in Großbuchstaben wandeln. Außerdem sind Zeichensatzkonvertierungen mit MINCHAR und MAXCHAR nicht zulässig.

Darüber hinaus ist nicht garantiert, daß MINCHAR auf Dynpros als Raute (#) ausgegeben wird. In manchen Fällen wird MINCHAR als Ende eines Textfeldes behandelt.

Attribut ENDIAN

Die Konvertierung von Zahlentypen und Unicode zwischen Little Endian und Big Endian wird durch die Konvertierungsklassen, die im Zusammenhang mit der Dateischnittstelle eingeführt werden, abgedeckt. Die hier beschriebenen Attribute dienen dazu, Byte-Order-Marks in X-Containern zu erkennen und zu schreiben.

ENDIAN(1) TYPE C.

Hier wie auch in der klassenbasierten Dateischnittstelle werden in US und NUS die Werte B für Big Endian und L für Little Endian vergeben.

Konstanten BYTE_ORDER_MARK_

BYTE_ORDER_MARK_LITTLE(2) TYPE X

BYTE_ORDER_MARK_BIG(2) TYPE X

BYTE_ORDER_MARK_UTF8(3) TYPE X

Die Werte dieser Konstanten sind für US und NUS dieselben, nämlich X'FFFE' für Little Endian und X'FEFF' für Big Endian. BYTE_ORDER_MARK_UTF8 enthält die UTF8-Darstellung von U+'FEFF'.

Die klassenbasierte Dateischnittstelle wird eine Byte-Order-Mark schreiben, wenn eine UTF16- oder UCS2-Textdatei zum Schreiben geöffnet wird. Wenn eine Textdatei zum Lesen oder Anfügen geöffnet wird, wird die Byte-Order-Mark benutzt, um den Endian zu bestimmen. Dabei wird die Byte-Order-Mark beim Einlesen jedoch nicht in die Zielfelder geschrieben.

Attribute NEWLINE, CR_LF und HORIZONTAL_TAB

NEWLINE(1) TYPE C

CR_LF(2) TYPE C

HORIZONTAL_TAB(1)TYPE C

Diese Attribute enthalten die jeweiligen plattformspezifischen Steuerzeichen.