compareBytes()

システム関数 VGLib.compareBytes は、2 つのフィールドをバイト単位で比較します。

StrLib.compareStr と同様に、source と target は、文字型にすることができます。 現在の関数では、source は以下のいずれかの型にすることもできます。
  StrLib.compareBytes(
    target 文字型です  in,
    targetIndex INT in,
    targetSubLength INT in,
    source BIN、DECIMAL、NUM、NUMC、PACF、または文字型 in,
    sourceIndex INT in,
    sourceSubLength INT in)
  returns (result INT)
result
関数から戻される次のいずれかの値 (INT 型か、INT 型と同等の、長さが 9 で小数部がない BIN 型として定義された型) を受け取る数値フィールド。
-1
target を基にした値は、 source を基にした値より小さい
0
target を基にした値は、 source を基にした値と等しい
1
target を基にした値は、 source を基にした値より大きい
target
ターゲット値の派生元の値。 フィールドまたはリテラルを使用できます。
targetSubIndex
target の先頭バイトの指標値が 1 である場合に、 target の値の開始バイトを識別する。 この指標には、整数リテラルを使用できます。 または、この指標には、INT 型、または INT 型と同等の、長さが 9 で小数部がない BIN 型として定義されたフィールドを使用できます。
targetSubLength
target から派生する値のバイト数を識別する。 長さは整数リテラルとすることができます。または、フィールドは、 INT 型、または INT 型と同等の、長さが 9 で小数部がない BIN 型と定義された項目とすることができます。
source
ソース値の派生元のフィールドまたはリテラル。
sourceSubIndex
source の先頭バイトの指標値が 1 である場合に、 source の値の開始バイトを識別する。 この指標には、整数リテラルを使用できます。 または、この指標には、INT 型、 または INT 型と同等の、長さが 9 で小数部がない BIN 型と定義されたフィールドを使用できます。
sourceSubLength
source から派生する値のバイト数を識別する。 長さは整数リテラルとすることができます。または、この指標には、INT 型、 または INT 型と同等の、長さが 9 で小数部がない BIN 型と定義されたフィールドを使用できます。

値に関して、バイト対バイトの比較が実行されます。 値の長さが一致しない場合は、比較する前に、短い方の値にブランクが埋め込まれます (値が数値の場合も)。

定義に関する考慮事項

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

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

関連リファレンス
compareStr()
EGL ライブラリー VGLib

フィードバック
(C) Copyright IBM Corporation 2000, 2005. All Rights Reserved.