Anfang des Inhaltsbereichs

Verarbeitung von Zeichenketten Dokument im Navigationsbaum lokalisieren

Die Zeichenkettenverarbeitung, bei der bisher alle Argumente implizit als Feld vom Typ C interpretiert wurden, wird aufgeteilt in Stringverarbeitung für zeichenartige und byteartige Argumente.

Anweisungen zur Zeichenkettenverarbeitung

CLEAR ... WITH

CONCATENATE

CONDENSE

CONVERT TEXT ... INTO SORTABLE CODE

OVERLAY

REPLACE

SEARCH

SHIFT

SPLIT

TRANSLATE ... TO UPPER/LOWER CASE

TRANSLATE ... USING

Bei diesen Anweisungen müssen die Argumente Einzelfelder der Typen C, N, D, T oder STRING sein, zudem sind rein zeichenartige Strukturen erlaubt. Werden Argumente eines anderen Typs übergeben, so wird ein Syntax- oder Laufzeitfehler ausgelöst. Für die Verarbeitung von Bytefolgen, also Operanden des Typs X oder X-STRING, wird eine Teilmenge dieser Funktionalität durch den Zusatz IN BYTE MODE bereitgestellt. Eine Anweisung CONCATENATE a x b INTO c ist genau dann nicht mehr möglich, wenn a, b, c zeichenartig sind, x jedoch vom Typ X.

TRANSLATE ... CODEPAGE ...

TRANSLATE ... NUMBER FORMAT ...

Diese Anweisungen sind in UP verboten. Als Ersatz werden die neuen Konvertierungsklassen angeboten, die unter Konvertierung von Daten näher beschrieben sind.

Vergleichsoperatoren für die Zeichenkettenverarbeitung

CO
CN
CA
NA
CS
NS
CP
NP

Wie bei den Anweisungen zur Stringverarbeitung erfordern diese Operatoren Einzelfelder der Typen C, N, D, T oder STRING als Argumente, außerdem sind wiederum rein zeichenartige Strukturen zugelassen. Für Bytefolgen werden eigene Vergleichsoperatoren angeboten, die durch das Präfix BYTE- definiert werden.

Funktionen zur Stringverarbeitung

Die Funktion STRLEN arbeitet nur mit zeichenartigen Feldern und liefert die Länge in Zeichen zurück. Für die Länge von Bytefolgen steht die neue Funktion XSTRLEN zur Verfügung.

Die Funktion CHARLEN lieferte unter NUS bisher den Wert 1 für ein Textfeld, das mit einem Single-Byte-Zeichen beginnt. Für ein Textfeld, das mit einem Double-Byte-Zeichen beginnt, wird der Wert 2 zurückgeliefert. Unter US wird CHARLEN den Wert 1 liefern, falls text mit einem einfachen Unicode-Zeichen beginnt. Falls text mit einem Unicode-Doppelzeichen aus der Surrogate Area beginnt, wird 2 zurückgeliefert.

Die Funktion NUMOFCHAR liefert die Anzahl der Zeichen eines Strings oder eines zeichenartigen Feldes. In Single-Byte Codepages verhält sich diese Funktion wie STRLEN. In Multi-Byte Codepages werden Zeichen, die mehr als 1 Byte belegen, trotzdem mit der Länge 1 gezählt.

Ausgaben in Felder und Listen

Bei WRITE ... TO waren beliebige flache Datentypen als Ziel erlaubt, die wie C-Felder behandelt wurden. In UP gilt nun für WRITE ... TO ... die Einschränkung, daß das Zielfeld zeichenartig sein muß. Bei der Tabellenvariante WRITE ... TO itab INDEX idx muß der Zeilentyp der Tabelle zeichenartig sein. Offset und Längenangaben werden dabei zeichenweise gezählt.

Mit WRITE konnten bisher beliebige flache Strukturen ausgegeben werden. Wenn das Quellfeld bei WRITE eine flache Struktur Ist, dann muß diese in UP rein zeichenartig sein. Folgende Anweisungen sind davon betroffen:

WRITE f.

WRITE f TO g[+off][(len)].

WRITE (name) TO g.

WRITE f TO itab[+off][(len)] INDEX idx.

WRITE (name) TO itab[+off][(len)] INDEX idx.

 

Hinweis Im Zusammenhang mit Strukturerweiterungen sind die im Dictionary verwendeten Kategorien zu beachten.

Ende des Inhaltsbereichs