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)) である必要があります。searchStringsource サブストリング内に見つかった場合、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

フィードバック