Anfang des Inhaltsbereichs

Zeichenketten zerlegen Dokument im Navigationsbaum lokalisieren

Die Anweisung SPLIT zerlegt eine Zeichenkette in zwei oder mehrere Zeichenketten:

SPLIT <c> AT <del> INTO <c1> ... <cn>.

Das Feld <c> wird nach den Trennzeichen <del> durchsucht. Die Teile vor und nach den Trennzeichen werden in die Zielfelder <c1> ... <cn> gestellt.

Um alle Teile in verschiedene Zielfelder stellen zu können, benötigt man eine ausreichende Anzahl von Zielfeldern. Anderenfalls wird das letzte Zielfeld mit dem Rest des Feldes <c> gefüllt und enthält auch noch Trennzeichen.

Wenn alle Zielfelder so lang sind, das kein Teil abgeschnitten werden muß, wird SY-SUBRC auf 0 gesetzt, sonst auf 4.

Beispiel

DATA: string(60) TYPE c,
      p1(20) TYPE c VALUE '++++++++++++++++++++',
      p2(20) TYPE c VALUE '++++++++++++++++++++',
      p3(20) TYPE c VALUE '++++++++++++++++++++',
      p4(20) TYPE c VALUE '++++++++++++++++++++',
      del(3) TYPE c VALUE '***'.

string = ' Part 1 *** Part 2 *** Part 3 *** Part 4 *** Part 5'.
WRITE string.

SPLIT string AT del INTO p1 p2 p3 p4.

WRITE / p1.
WRITE / p2.
WRITE / p3.
WRITE / p4.

Ausgabe:

Part 1 *** Part 2 *** Part 3 *** Part 4 *** Part 5

Part 1

Part 2

Part 3

Part 4 *** Part 5

Der Inhalt der Felder P1 ...P4 wird vollständig überschrieben und die Felder werden am Ende mit Leerzeichen aufgefüllt.

Eine Zeichenkette kann auch in die Zeilen einer internen Tabelle zerlegt werden:

SPLIT <c> AT <del> INTO TABLE <itab>.

Die Anweisung fügt für jeden Teil der Zeichenkette der Tabelle <itab> eine neue Tabellenzeile hinzu.

Ende des Inhaltsbereichs