ITOPACK: Cómo convertir un entero binario grande al formato número decimal empaquetado

Cómo:

Idiomas disponibles: informes, Maintain

La función ITOPACK convierte número enteros binarios, grandes de orígenes de datos no FOCUS, al formato número decimal empaquetado.

Algunos lenguajes de programación y sistemas de almacenamiento de datos que no son de tipo FOCUS, emplean formatos de números enteros binarios de doble palabra. Éstos son similares a los números enteros binarios de palabra única utilizados por FOCUS, aunque son compatibles con los números grandes. Sin embargo, los números enteros binarios grandes (de más de 4 bytes de longitud) no son compatibles con el archivo máster y requieren su conversión al formato número decimal empaquetado.

Debe indicar cuántos de los bytes, situados a la derecha del todo del campo de entrada, son significativos. El resultado es un campo decimal empaquetado de 8 bytes y hasta 15 posiciones numéricas significantes (por ejemplo, P15 o P16.2).

Límite: En campos definidos como 'PIC 9(15)' o el equivalente (15 dígitos significantes), el número máximo que puede convertirse es el 167,744,242,712,576.


Principio de página

x
Sintaxis: Cómo Convertir un entero binario grande al formato número decimal empaquetado
ITOPACK(maxbytes, infield, output)

donde:

maxbytes
Numérico

Es el número máximo de bytes, en el campo de entrada binario de 8 bytes, que contienen datos numéricos significativos, incluido el signo binario.

Los valores válidos son:

5, ignora los tres primeros bytes de la izquierda (hasta 11 posiciones significantes).

6, ignora los dos primeros bytes de la izquierda (hasta 14 posiciones significantes).

7, ignora el primer byte de la izquierda (hasta 15 posiciones significantes).

infield
A8

Es el campo que contiene el número binario. Los formatos USAGE y ACTUAL del campo deben ser A8.

output
Numérico

Es el nombre del campo que contiene el resultado, o el formato del valor de salida puesto entre comillas solas. El formato debe ser Pn o Pn.d.



Ejemplo: Cómo convertir un entero binario grande al formato número decimal empaquetado

Supongamos que un número binario de un archivo externo está en el formato COBOL siguiente:

PIC 9(8)V9(4) COMP

Está definido en el archivo máster EUROCAR como un campo llamado BINARYFLD. Los formatos de sus campos son USAGE=A8 y ACTUAL=A8, puesto que su longitud es superior a 14 bytes.

La siguiente solicitud convierte el campo al formato número decimal empaquetado:

DEFINE FILE EUROCAR
PACKFLD/P14.4 = ITOPACK(6, BINARYFLD, PACKFLD);
END
TABLE FILE EUROCAR
PRINT PACKFLD BY CAR
END

Information Builders