compareBytes()

vgLib.compareBytes() システム関数は、2 つのサブストリングの内容の形式に関係なく、その内容をバイト単位で比較します。

vgLib.compareBytes() は、VisualAge® Generator からマイグレーションされるコードの互換性の目的で維持される多くの関数の 1 つです。この意図から、新規のコードでは標準の EGL 演算子を使用できます。

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

構文

  vgLib.compareBytes(
    var1 HEX inOut,
    var1index INT in,
    var1SubstrLength INT in,
    var2 HEX inOut,
    var2Index INT in,
    var2SubstrLength INT in  )
  returns (result INT)
var1
最初の比較値の派生元の値。 HEX と参照互換性のある任意の値を使用できます。
var1SubstrIndex
先頭バイトの指標値が 1 である場合に、var1 のサブストリングの開始バイトを識別します。この指標には、整数リテラルまたは変数 (INT または BIN(9)) を使用できます。
var1SubstrLength
var1 から派生するサブストリングのバイト数を識別します。 この長さには、整数リテラルまたは変数 (INT または BIN(9)) を使用できます。
var2
2 番目の比較サブストリングの派生元の値。 HEX と参照互換性のある任意の値を使用できます。
var2SubstrIndex
先頭バイトの指標値が 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.compareBytes() 関数を使用する方法を示しています。

target, source HEX (6); // index must be multiple of 2
result INT;

target = "123456";
source = "34";
result = vgLib.compareBytes(target,2,1,source,1,1); // result = 0

フィードバック