広告

この広告は30日以上更新がないブログに表示されております。
新規記事の投稿を行うことで、非表示にすることが可能です。
posted by fanblog

2020年02月13日

【ABAP】CONDENSE命令


ABAPにおける 文字列操作命令「CONDENSE」の使い方、「NO-GAPS」オプションについて 解説します。

CONDENSEを日本語に直すと「濃縮する」「凝縮する」といった意味となり、ABAPのCONDENSE命令では変数(データオブジェクト)に含まれるブランクを削除し、文字列だけを残す処理を行います。


目次

1 CONDENSE命令とは



3?CONDENSE命令の注意点


1 CONDENSE命令とは


CONDENSE命令とは、ABAPにおける文字列の処理命令です。

冒頭でも解説した通り「CONDENSE」とは日本語で「凝縮する」という意味で、その意味の通り文字列を凝縮(縮める)処理を行います。

構文ルール:CONDENSE命令


CONDENSE (変数).

対象の文字列が格納されている変数をオペランドに指定するだけで、変数に含まれる文字列の ?@先頭と末尾に存在する空白と、?Aその他の「連続するブランク」が消去され、ブランクが1つだけに変更されます

データオブジェクトがstring型の場合には、変数の長さも合わせて圧縮してくれます
string型でなければ、右側にブランクが格納されます。

2文字以上のブランクのみを消去するのがCONDENSE命令で理解が難しい点ですので、以下の通りきちんと整理して理解しておきましょう。

•ブランクが連続で存在する場合  ⇒ 連続するブランクを削除し1つのブランクに変更する
•ブランクが連続で存在しない場合 ⇒ 何もしない

CONDENSE命令は、MESSAGE命令を用いてテキストを動的に表示したい場合などに用いる場合などに応用できます。

2 NO-GAPSオプション


CONDENSE (変数) NO-GAPS.

「NO-GAPS」オプションを指定すると、すべてのブランクを削除するようになります。

NO-GAPSオプションを利用しない

⇒ 2文字以上のブランクが削除され、1つのブランクになる

NO-GAPSオプションを利用する

⇒  すべてのブランクが削除される


つまり、NO-GAPSオプションを利用するとすべてのブランクが削除され文字列が左詰めされることになります。

3 CONDENSE命令の注意点


CONDENSE命令で指定する変数(データオブジェクト)は、文字型でなければいけません。

文字型以外の場合は、おそらく構文チェックにひっかかるはずです。
その場合は、変数のデータ型を変換して解決します。

タグ: ABAP
Build a Mobile Site
スマートフォン版を閲覧 | PC版を閲覧
Share by: