You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Next »

9.186 SCANSTRING

注意: 9.1 組み込み関数の規則      &<a href="ladtgub1_0056.htm"&>利用オプション&</a&>
文字列に対して、あるパターンの最初のオカレンスをスキャンします。
 
引数
次の表に、このファンクションで使用する引数を示します。

番号

タイプ

必須/任意

記述

最小長

最大長

最小小数桁数

最大小数桁数

1

A

必須

スキャン対象の文字列

1

無制限

 

 

2

A

必須

検索するパターン。必要に応じて大文字または小文字を使用して入力してください。
このパラメータはRDMLXリストでは無視されます。どの値でも指定できます。リスト・エントリーの長さにかかわらず、正しく保管されます。

1

無制限

 

 

3

N

任意

スキャンを開始する位置。範囲: 1~スキャン対象文字列の最大可能長
デフォルト: 1

1

11

0

0

4

A

任意

大文字を比較するかどうかを指定
1 = いいえ、大文字/小文字の両方で比較 0 = はい、大文字で比較
デフォルト: 1
注 を参照してください。

1

1

 

 

5

A

任意

パターンの末尾ブランクを除去するかどうかを指定
1 = はい 0 = いいえ
デフォルト:1 - ワイルド・カード・パターンから末尾ブランクを除去

1

1

 

 

6

A

任意

スキャン・パターンのワイルド・カード。値:
ブランク = ワイルド・カードなし
ブランク以外 = ワイルド・カードあり
デフォルト:ワイルド・カードなし
パターンの一番左の文字にブランクを使用しないでください。使用すると、エラーが発生します。

1

1

 

 

戻り値

番号

タイプ

必須/任意

記述

最小長

最大長

最小小数桁数

最大小数桁数

1

N

必須

文字列での最初のオカレンスの位置またはエラー・コード
次の値のうちの1つが戻されます。
+p = 位置"p"で検出されたパターンのオカレンス
0 = スキャン対象の文字列にパターンなし
-1 = エラー(パターンが文字列より長い)
-2 = エラー(パターンの長さが1より短い)
-3 = エラー(パターンの最初の文字がワイルド・カード)
-4 = エラー(パターンがブランクで、除去が指定されている)
-5 = エラー(開始位置が無効)

1

3

0

0


結果は、文字列を比較するために大文字に変換されます。以下は結果の例です。

検索対象の文字列

大文字比較パラメータの指定

結果

検出されるかどうか

ABC

1  (いいえ)

123abc4

Yes

 

 

123ABC4

Yes

ABC

0  (はい)

123abc4

No

 

 

123ABC4

Yes

abc

1  (いいえ)

123abc4

No

 

 

123ABC4

No

abc

0  (はい)

123abc4

Yes

 

 

123ABC4

No


次のコードによって、テキスト "find where it exists" にある文字列 "where" が検索されます。
Function    Options(*DIRECT) Define      Field(#PATTERN) Reffld(#SKILCODE) Label('Find Pattern') Default(WHERE) Define      Field(#STARTPOS) Reffld(#STD_IDNOS) Label('Start Pos') Default(1) Override    Field(#STD_FLAG) Label('Case (1/0)?') Default('''1''') Define      Field(#TRIM) Reffld(#STD_FLAG) Label('Trim (1/0)') Default('''1''') Define      Field(#WILD) Reffld(#STD_FLAG) Label('WildCard?') Default('') Override    Field(#STD_IDNOS) Label('Occurs at Pos.') Edit_Code(L) Change      Field(#STD_TEXTS) To('''Find where it exists''') Begin_Loop Request     Fields((#STD_TEXTS *LOWER) #PATTERN #STARTPOS #STD_FLAG #TRIM #WILD (#STD_IDNOS *OUT)) Use         Builtin(SCANSTRING) With_Args(#STD_TEXTS #PATTERN #STARTPOS #STD_FLAG) To_Get (#STD_IDNOS) End_Loop   

  • No labels