Zeichenfolgen verketten 

Die Anweisung CONCATENATE verkettet getrennte Zeichenfolgen zu einer Zeichenfolge:

CONCATENATE <c1> ... <cn> INTO <c> [SEPARATED BY <s>].

Die Felder <c1> bis <cn> werden verkettet und <c> zugewiesen. Leerzeichen am Ende der einzelnen Zeichenfolgen werden bei dieser Operation ignoriert.

Mit dem Zusatz SEPARATED BY <s> kann eine Zeichenkette <s> angegeben werden, die in ihrer Länge zwischen die einzelnen Felder eingefügt wird.

Wenn das Ergebnis in <c> paßt, wird SY-SUBRC auf 0 gesetzt. Falls das Ergebnis abgeschnitten wird, wird SY-SUBRC auf 4 gesetzt.

DATA: c1(10) TYPE c VALUE  'Sum',
      c2(3)  TYPE c VALUE  'mer',
      c3(5)  TYPE c VALUE  'holi ',
      c4(10) TYPE c VALUE  'day',
      c5(30) TYPE c,
      sep(3) TYPE c VALUE ' - '.

CONCATENATE c1 c2 c3 c4 INTO c5.
WRITE c5.

CONCATENATE c1 c2 c3 c4 INTO c5 SEPARATED BY sep.

WRITE / c5.

Listenausgabe:

Summerholiday

Sum - mer - holi - day

In C1 bis C5 werden die Leerzeichen am Ende ignoriert, während sie in der Trennzeichenfolge SEP erhalten bleiben.