ABAP 文字列の結合:CONCATENATE命令

  データ定義&編集

概要

CONCATENATE命令とは文字列の結合を行う命令である。文字列を扱う
Char, Numeric, Dats, Time, Stringの変数で使用する事が可能だ。
単純に文字列の結合のみを行う方法、結合した文字列間に区切り文字を
挿入する方法、データ型の長さに応じてスペースを挿入する方法等がある。
それぞれについてサンプルコードで説明しよう。

サンプルコード:文字列の結合

DATA: V_CHAR(15) TYPE C.
CONCATENATE 'ABC' 'DEF' 'GHI' INTO V_CHAR.

説明

この例では単純に文字列の結合を行った。
‘ABC’、’DEF’、’GHI’の文字を変数:V_CHARに結合して挿入した事になるので
結果は’ABCDEFGHI’となる。

サンプルコード:文字列の結合(区切り文字)

DATA: V_CHAR(15) TYPE C.
CONCATENATE 'ABC' 'DEF' 'GHI' INTO V_CHAR
  SEPARATED BY ';'.

説明

この例では文字列の結合を行う際にSEPARATED BYオプションにより;(セミコロン)で区切った。
‘ABC’、’DEF’、’GHI’の文字間に;(セミコロン)が挿入されるので
結果は’ABC;DEF;GHI’となる。
区切る文字はSpace(空白)、,(カンマ)等どのような文字でも可能である。

サンプルコード:文字列の結合(スペース自動挿入)

DATA: V_CHAR(15) TYPE C.
TYPES: BEGIN OF t_char,
         col1(5) type c,
         col2(10) type c,
         col3(5) type c,
       END of t_char.
DATA: wa_char type t_char.
wa_char-col1 = 'ABC'.
wa_char-col2 = 'DEF'.
wa_char-col3 = 'GHI'.

CONCATENATE wa_char-col1 wa_char-col2 wa_char-col3 INTO V_CHAR
 RESPECTING BLANKS.

説明

この例では文字列の結合を行う際にRESPECTING BLANKSオプションを使用した。
結果は’ABC DEF GHI ‘のようになる。
RESPECTING BLANKSオプションはデータ長に合わせて自動的にスペース埋めしてくれるオプションであり、
固定長のファイル出力等を行いたい際に重宝する事ができるのではないだろう。
但し、この命令は比較的新しく、ECC6.0当たりでは使用する事ができない。