PR

【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から学習したい方は

初めてABAPを勉強するのは結構難しいですよね。

でもその悩みを抱えているのは一人じゃありません。全てのABAP使いが同じ道を進んできました。

ABAPをはじめとするプログラミングスキルを武器に、時間と場所に捉われない自由な生き方を目指してみませんか?

あなたの技術、もっと価値ある場所で活かしませんか?
SAPエンジニアのキャリア支援はこちらから↓

No.1 > 外資系・IT業界などハイクラスの転職なら【アクシスコンサルティング】blank
4人に1人のコンサルタントが選ぶパートナー!
ビッグ4やアクセンチュアへの転職を実現し年収1000万へ。

No.2 > IT・Web転職特化エージェント【レバテックキャリアblank
blank
サービス利用者数20万人突破。

平均年収アップ率77%であなたの転職成功を保証します。

No.3 > blankリクルートエージェント
blank
\転職支援実績NO.1/

応募が殺到しすぎるが故に・・・非公開にせざるを得ない魅力的な求人が多数!

読者料典 【完全無料】ABAP:学習カリキュラム ←こちらから!

このWebサイトは現役のエンジニアが以下3点を目的として運営しています。

  1. 勉強:一度理解した内容を忘れないように。
    → アウトプットは「最強のインプット」である! 
  2. 備忘:忘れたとしても後から見返せるように。
    → 未来の自分への「お手紙」を書いています。 
  3. 共有:〇〇ってこうだったんだ!の感動をシェアできるように。
    → あなたの知識は誰かにとっての「価値ある情報」です。 

副業ブログの始め方はこちらから

スポンサーリンク
ABAPSAP
シェアする
ビズドットオンラインをフォローする
タイトルとURLをコピーしました