COMPARE 関数

目的

2 つのバッファーを比較します。

構文

COMPARE(x, y, z)

パラメーター

xyz は式です。x および y は記憶領域を指定するアドレスで、z はバイト数です。x および y には、OFFSET 型および POINTER 型が必要です。z は、FIXED BINARY(31,0) に変換されます。

説明

COMPARE 組み込み関数は、2 つのバッファーを比較して、FIXED BINARY(31,0) の値を返します。アドレス x とアドレス y のバイト数が同じである場合、戻り値は 0 になります。x のバイト数 (z) が y より小さい場合は戻り値が負になり、x のバイト数が y より大きい場合は戻り値が正になります。

dcl Result fixed bin;
dcl 1 Str1,
2 B fixed bin(31),
2 C pointer,
2 * union,
3 D char(4),
3 E fixed bin(31),
3 *,
4 * char(3),
4 F fixed bin(8) unsigned,
2 * char(0);
dcl 1 Template nonasgn static,
2 * fixed bin(31) init(16), /* ’’X */
2 * pointer init(null()),
2 * char(4) init(’’),
2 * char(0);
call plimove(addr(Str1), addr(Template), stg(Str1));
Result = compare(addr(Str1), addr(Template), stg(Str1)); /* 0 */
D = ’DSA ’;
Result = compare(addr(Str1), addr(Template), stg(Str1)); /* 1 */
B = 15; /* ’00000F00’X */
D = ’DSA ’;
Result = compare(addr(Str1), addr(Template), stg(Str1)); /* -1 */

制約事項

なし。