【ABAP】オフセット処理―文字列処理の基本を1分で

ABAP

本ページではABAPのオフセット(Offset)処理について初心者向けに解説します。

オフセット処理を簡単に説明すると対象の文字列の「基準と長さを指定して」文字列を切り取る処理です。

このページでは、ABAP学習中の方向けに、ABAPのオフセット処理を1からわかりやすくサンプルコード付きで解説します。

このページで学べる内容
  • オフセット(offset)とは?
  • オフセット処理とは?
  • オフセット処理の構文ルール:サンプルコード

ABAPerを目指す方であれば頭に入れておきたい基本中の基本知識です。是非最後までご覧ください。

スポンサーリンク

ABAP:オフセット処理(offset)とは

オフセット処理(offset)とは基準とした位置から指定した長さの文字列を指定することです。

↑のように、言葉で説明すると難しく感じてしまいまうので、以下では図解付きで解説していきます。

以下の文字列「あいうえお」を例にオフセット処理を考えます。

ABAP オフセット

オフセット処理の使いどころは、上記の文字列の中から「うえお」を指定して変数を代入したいような場合です。

ABAP オフセット

「あいうえお」の文字から「うえお」を指定して取り出すこと―。これがオフセット処理です。

具体的には冒頭で示した通りオフセット(offset)は「基準とした位置から指定した長さの文字列を指定」します。

以下のように「2(3)」というように表します。

ABAP オフセット

( )の前に基準とする位置を。( )の中に指定の長さを明示します。

文字列の位置は、以下の通り「」から開始される点に注意しましょう!

ABAP オフセット

オフセットと合わせて図解すると以下のようなイメージです。

ABAP オフセット

基準とする位置を「2」。そこから「3つ」の文字列を指定する例です。

ABAPでのオフセット利用方法

オフセット処理のイメージが付いたところで、ここからは実際にオフセットを利用したサンプルコードを見ていきましょう。

構文ルール:オフセット

変数名+2(4)

変数名の直後に「どこから」「どれぐらいの長さ」かを指定するだけ。非常に簡単です。

サンプルコード:オフセット

下記のサンプルコードは、オフセットを利用した構文です。

DATA: 
  W_YEAR(4)    TYPE N VALUE 2020,   " 初期値2020
  W_MONTH(2)   TYPE N VALUE 07,     " 初期値07
  W_DAY(2)     TYPE N VALUE 24,     " 初期値24
  W_CLD        TYPE D.              " 初期値なし→ブランク

  W_CLD+0(4) = W_YEAR.              " W_CLD の0番目から4文字は「2020」
  W_CLD+4(2) = W_MONTH.             " W_CLD の4番目から2文字は「07」
  W_CLD+6(2) = W_DAY.               " W_CLD の6番目から2文字は「24」

WRITE W_CLD.                        " 20200724

また、オフセット処理では代入だけではなく、以下のようにクリア処理なども行うことが可能です。

DATA: 
  W_YEAR(4)    TYPE N VALUE 2020,   " 初期値2020
  W_MONTH(2)   TYPE N VALUE 07,     " 初期値07
  W_DAY(2)     TYPE N VALUE 24,     " 初期値24
  W_CLD        TYPE D.              " 初期値なし→ブランク

  W_CLD+0(4) = W_YEAR.              " W_CLD の0番目から4文字は「2020」
  W_CLD+4(2) = W_MONTH.             " W_CLD の4番目から2文字は「07」
  W_CLD+6(2) = W_DAY.               " W_CLD の6番目から2文字は「24」

CLEAR W_CLD+0(4)                    " W_CLD の0番目から4文字をクリア→0000
WRITE W_CLD.                        " 00000724

以上でABAPのオフセット処理についての解説は終了です。

SAP / ABAPを1から学習したい方は

SAP / ABAPを1から学習したい初心者の方向けに、できるだけ網羅的にABAPが理解できるよう以下ページに知識体系を整理しています。

特に初心者のうちは、どこから学べばよいか?どう勉強すれば良いか?すらわからない状態になりがち。

ある程度の知識を持ったうえで、はじめて実践的な理解へとつながります。

タイトルとURLをコピーしました