findStr()
vgLib.findStr() システム関数は、ストリング内で、あるサブストリングの最初の出現を検索します。
vgLib.findStr() は、以前のバージョンとの互換性の目的で維持される多くの関数の 1 つです。この意図から、新規のコードでは標準の EGL 演算子を使用できます。
構文
vgLib.findStr(
source CHAR | DBCHAR | MBCHAR | UNICODE | NUM | HEX in,
sourceSubstringIndex INT inOut,
sourceSubstringLength INT in,
searchString CHAR | DBCHAR | MBCHAR | UNICODE | NUM | HEX in)
returns (result INT)
- source
- ソース・サブストリングの派生元のストリング。 変数またはリテラルを使用できます。
- sourceSubstringIndex
- 先頭バイトの値が 1 である場合に、検索を開始する source のサブストリングの開始バイトを識別します。この指標は、整変数 (INT または BIN(9)) である必要があります。searchString が source サブストリング内に見つかった場合、sourceSubstringIndex は更新されて searchString のロケーションを示すようになります。
- sourceStringLength
- source フィールド内のバイト数を識別します。 この長さには、整数リテラルまたは変数 (INT または BIN(9)) を使用できます。
- searchString
- source ストリングの中で検索するストリング変数またはリテラル。 少なくとも 1 つの非ブランクまたは 1 つの NULL 以外の文字が存在する限り、searchString の末尾のブランクや NULL は、検索が開始される前に切り捨てられます。 その他の場合は、searchString は切り捨てられません。
- result
- 次のいずれかの整数値。
- -1
- 検索ストリングが見付からない
- 0
- 検索ストリングが見付かった
ソース・サブストリングの中で searchString が検出されると、 そのロケーション (一致するサブストリングが始まるソース内のバイト) を 示すように sourceSubstringIndex が設定されます。 検出されない場合は、sourceSubstringIndex は変更されません。
エラーに関する考慮事項
V6 の例外互換性 (V6 の例外互換性の使用を参照) を使用している場合、以下の値が sysVar.errorCode で戻されます。
- 8
- 指標が 1 より小さいか、ストリングの長さよりも大きい。
- 12
- 長さが 1 より小さい。
- 20
- 2 バイト指標は無効です。 DBCHAR ストリングや UNICODE ストリングの指標が、2 バイト文字の中間を指しています。
- 24
- 2 バイト長さは無効です。 DBCHAR ストリングや UNICODE ストリングの長さを示すバイト数が、奇数になっています (2 バイト文字の長さは常に偶数になります)。
例
次の例は、source ストリングで、文字「34」を検索しています。
source CHAR(6);
search CHAR(2);
result, sourceIndex, sourceLength INT;
source = "123456";
sourceIndex = 1;
sourceLength = 6;
search = "34";
result = vgLib.findStr(source,sourceIndex,sourceLength,"34");
// result = 0, sourceIndex = 3