コンテンツフレーム起動

文字列の検索 文書を SAP ライブラリストラクチャに組み込む

特定のパターンを使用して文字項目を検索する場合は、 SEARCH 命令を次のように使用します。

構文

SEARCH <c> FOR < 文字列 > < オプション >.

この命令により、項目 <c> 内で < 文字列 r> 内の文字列が検索されます。見つかった場合は、リターンコード SY-SUBRC の値は0に設定され、 SY-SDPOS には、項目 <c> 内の文字列のオフセットが設定されます。含まれている場合は、 SY-SUBRC は4になります。

検索文字列 < 文字列 > で使用できる書式は次のいずれかです。

<str>

機能

<pattern>

< パターン > (任意の文字列)を検索します。後続の空白は無視されます。

.<pattern>.

< パターン > を検索します。後続の空白は無視されません。

*< パターン >

< パターン > で終わる単語が検索されます。

<pattern>*

< パターン > で始まるワードが検索されます。

ワードとは、空白、コンマ、ピリオド、セミコロン、コロン、疑問符、感嘆符、カッコ、スラッシュ、プラス符号および等号で区切られた文字列です。

例

DATA STRING(30) VALUE 'This is a little sentence.'.

WRITE: / 'Searched', 'SY-SUBRC', 'SY-FDPOS'.
ULINE /1(26).

SEARCH STRING FOR 'X'.
WRITE: / 'X', SY-SUBRC UNDER 'SY-SUBRC',
SY-FDPOS UNDER 'SY-FDPOS'

SEARCH STRING FOR 'itt '.
WRITE: / 'itt ', SY-SUBRC UNDER 'SY-SUBRC',
SY-FDPOS UNDER 'SY-FDPOS'

SEARCH STRING FOR '.e.'.
WRITE: / '.e.', SY-SUBRC UNDER 'SY-SUBRC',
SY-FDPOS UNDER 'SY-FDPOS'.

SEARCH STRING FOR '*e'.
WRITE: / '*e ', SY-SUBRC UNDER 'SY-SUBRC',
SY-FDPOS UNDER 'SY-FDPOS'.

SEARCH STRING FOR 's*'.
WRITE: / 's* ', SY-SUBRC UNDER 'SY-SUBRC',
SY-FDPOS UNDER 'SY-FDPOS'.

出力は以下のようになります。

SEARCHED SY-SUBRC SY-FDPOS

X            4        0

itt          0       11

.e.          0       15

*e           0       10

s*           0       17

 

各種のオプション (< オプション >) を使用すると、文字項目 <c> を下記のように検索することができます。

項目 <c> < 文字列 > にある文字列を含む単語が検索されます。文字は他の文字で区切ることができます。単語の一文字目と文字列 <str> は同じでなければなりません。

項目 <c> の位置 <n1> から < 文字列 > を検索します。処理結果 SY-FDPOS <n1> を基準としたオフセット値で、項目の開始位置を基準にしたものではありません。

項目 <c> < 文字列 > <n2> 桁まで検索されます。

検索文字列が検出されると、検索文字列内のすべての文字(および ABBREVIATED を使用している場合にはその間のすべての文字)が大文字に変換されます。

例

DATA: STRING(30) VALUE 'This is a fast first example.',
POS TYPE I,
OFF TYPE I.

WRITE / STRING.

SEARCH STRING FOR 'ft' ABBREVIATED.
WRITE: / 'SY-FDPOS:', SY-FDPOS.

POS = SY-FDPOS + 2.
SEARCH STRING FOR 'ft' ABBREVIATED STARTING AT POS AND MARK.
WRITE / STRING.
WRITE: / 'SY-FDPOS:', SY-FDPOS.
OFF = POS + SY-FDPOS -1.
WRITE: / 'Off:', OFF.

出力は以下のようになります。

This is a fast first example.

SY-FDPOS:      10

This is a fast FIRST example.

SY-FDPOS:      4

Off:          15

ワード‘ fast ’を検出した後で‘ ft ’を含む第2のワードを検索するには、オフセット SY-FDPOS に2を加算して位置 POS から検索を開始する必要があります。そうしないと、ワード‘ fast ’がもう1度検出されることになります。項目 STRING の開始位置を基準とした‘ first ’のオフセットは、 POS SY-FDPOS から計算して求められます。

 

コンテンツフレーム終了