compareStr()

vgLib.compareStr() システム関数は、実行時に 2 つのサブストリングを ASCII または EBCDIC の順序に従って比較します。

vgLib.compareStr() は、以前のバージョンとの互換性の目的で維持される多くの関数の 1 つです。この意図から、新規のコードでは標準の EGL 演算子を使用できます。

EGL は、バイト間で値の比較を実行します。 値の長さが一致しない場合、EGL は、短い方の値にブランクを埋め込みます (値が数値の場合も)。

構文

  vgLib.compareStr(
    var1 CharType in,
    var1SubstrIndex INT in,
    var1SubstrLength INT in,
    var2 CharType in,
    var2SubstrIndex INT in,
    var2SubstrLength INT in  )
  returns (result INT)
var1
最初の比較サブストリングの派生元の値。 変数またはリテラルを使用できます。
var1SubstrIndex
先頭バイトの指標値が 1 である場合に、var1 のサブストリングの開始バイトを識別します。この指標には、整数リテラルまたは変数 (INT または BIN(9)) を使用できます。
var1SubstrLength
var1 から派生するサブストリングのバイト数を識別します。 この長さには、整数リテラルまたは変数 (INT または BIN(9)) を使用できます。
var2
2 番目の比較サブストリングの派生元の値。 変数またはリテラルを使用できます。
var2SubstrIndex
source の先頭バイトに指標値 1 がある場合に、var2 のサブストリングの開始バイトを識別します。 この指標には、整数リテラルまたは変数 (INT または BIN(9)) を使用できます。
var2SubstrLength
var2 から派生するサブストリングのバイト数を識別します。 この長さには、整数リテラルまたは変数 (INT または BIN(9)) を使用できます。
result
次のような関数で戻される整数値 (INT または BIN(9))。
-1
var1 を基にしたサブストリングは、var2 を基にしたサブストリングより小さい。
0
var1 を基にしたサブストリングは、var2 を基にしたサブストリングと等しい。
1
var1 を基にしたサブストリングは、var2 を基にしたサブストリングより大きい。

エラーに関する考慮事項

V6 の例外互換性 (V6 の例外互換性の使用を参照) を使用している場合、以下の値が sysVar.errorCode で戻されます。
8
指標が 1 より小さいか、ストリングの長さよりも大きい。
12
長さが 1 より小さい。
20
DBCHAR ストリングや UNICODE ストリングの指標が、2 バイト文字の中間を指しています。
24
DBCHAR ストリングや UNICODE ストリングの長さを示すバイト数が、奇数になっています (2 バイト文字の長さは常に偶数になります)。

以下の例は、vgLib.compareStr() 関数の使用法を示しています。

target, source CHAR (6);
result INT;
target = "123456";
source = "34";
result = vgLib.compareStr(target,3,2,source,1,2); // result = 0

互換性

表 1. vgLib.compareStr() の互換性に関する考慮事項
プラットフォーム 問題
COBOL 生成 NUM は、ソースまたはターゲット変数に対して正しい型です。

フィードバック