compareBytes()

La función del sistema VGLib.compareBytes compara dos campos, byte a byte.

Como vale para StrLib.compareStr, el origen y el destino pueden ser de tipo carácter. En la función actual, el origen también puede ser cualquiera de los tipos siguientes:
  StrLib.compareBytes(
    destino un tipo de caracteres in,
    índiceDestino INT in,
    longitudSubDestino INT in,
    origen BIN, DECIMAL, NUM, NUMC, PACF o un tipo de carácter in,
    índiceOrigen INT in,
    longitudSubOrigen INT in  )
  returns (resultado INT)
resultado
Campo numérico que recibe uno de los siguientes valores (definido como de tipo INT o el equivalente: tipo BIN con longitud 9 y sin posiciones decimales) devueltos por la función:
-1
El valor basado en destino es menor que el valor basado en origen
0
El valor basado en destino es igual al valor basado en origen
1
El valor basado en destino es mayor que el valor basado en origen
destino
Valor del que se deriva un valor destino. Puede ser un campo o un literal.
índiceSubDestino
Identifica el byte inicial de un valor de destino, suponiendo que el primer byte de destino tenga el valor de índice 1. Este índice puede ser un literal entero. Como alternativa, este índice puede ser un campo definido como de tipo INT o el siguiente equivalente: tipo BIN con longitud 9 y sin posiciones decimales.
longitudSubDestino
Identifica el número de bytes del valor que se deriva de destino. La longitud puede ser un literal entero. Como alternativa, el campo puede definirse como tipo INT o el siguiente equivalente: tipo BIN con longitud 9 y sin posiciones decimales.
origen
Campo o literal del que se deriva un valor origen.
índiceSubOrigen
Identifica el byte inicial del valor de origen, suponiendo que el primer byte de origen tenga el valor de índice 1. Este índice puede ser un literal entero. Como alternativa, este índice puede ser un campo definido como de tipo INT o el siguiente equivalente: tipo BIN con longitud 9 y sin posiciones decimales.
longitudSubOrigen
Identifica el número de bytes del valor que se deriva de origen. La longitud puede ser un literal entero. Como alternativa, este índice puede ser un campo definido como de tipo INT o el siguiente equivalente: tipo BIN con longitud 9 y sin posiciones decimales.

Se realiza una comparación de byte a byte de los valores. Si los valores no tienen la misma longitud, el valor más corto se rellena con blancos aunque el valor sea numérico.

Consideraciones de definición

En sysVar.errorCode se devuelven los siguientes valores:
8
El índice es menor que 1 o mayor que la longitud del valor.
12
La longitud es menor que 1.
20
Índice de doble byte no válido. El índice de una serie DBCHAR o UNICODE señala a la mitad del carácter de doble byte
24
Longitud de doble byte no válida. La longitud en bytes de una serie DBCHAR o UNICODE es impar (las longitudes de doble byte deben ser siempre pares).

Ejemplo

  target = "123456";
  source = "34";
  result = 
    StrLib.compareBytes(target,3,2,source,1,2);
  // resultado = 0
Comentarios
(C) Copyright IBM Corporation 2000, 2005. Reservados todos los derechos.