概要
REPLACE命令は特定の文字が含まれているかを検索し、含まれている場合はその文字を置換する命令である。
サンプルコード:文字の置換
DATA: V_TEXT TYPE String. V_TEXT = 'AAAAFINDCBBBFINDB'. REPLACE 'FIND' IN V_TEXT WITH 'XX'. IF SY-SUBRC = 0. WRITE V_TEXT. "AAAAXXCBBBFINDB ENIDF.
説明
当例ではREPLACE命令を使用し、変数:V_TEXTから’FIND’という文字を’XX’に置換するという文になる。システム変数:SY-SUBRCには見つける事ができたら’0’が返り、見つける事ができなかった場合は’4’が返ってくる為、それぞれの処理をIF文等で分岐してから記述する事ができる。
この場合、’FIND’が2箇所あるが最初の’FIND’のみ置換される為、”AAAAXXCBBBBFINDB”という結果が返ってくる。全ての文字を置換する例は後述を参照。
サンプルコード:全ての文字の置換
DATA: V_TEXT TYPE String. V_TEXT = 'AAAAFINDCBBBFINDB'. REPLACE ALL OCCURRENCES OF 'FIND' IN V_TEXT WITH 'XX'. IF SY-SUBRC = 0. WRITE V_TEXT. "AAAAXXCBBBXXB ENIDF.
説明
最初の例と同様に、当例ではREPLACE命令を使用し、変数:V_TEXTから’FIND’という文字を’XX’に置換するという文になる。
異なる点としては、最初の文字だけを置換するか、全ての文字を置換するかという点になる。全ての文字を置換する場合は、ALL OCCURRENCES OFというオプションが必要になる。最初の文字を置換する場合は、FIRST OCCURRENCES OFという記述になるが、デフォルトとしてはFIRST OCCURRENCES OFの為、記述は省略する事が多いだろう。
この場合、’FIND’を全て置換する為、”AAAAXXCBBBBXXB”という結果が返ってくる。
REPLACE命令のまとめ
文字を置換したい場合、文字を消したい場合に使用できる事を覚えておこう。
特定の文字を別の文字に置き換えたり、金額や数量の桁区切り(,)を消したりするのに有効だ。
最近のコメント