ITOPACK: Cómo convertir un entero binario grande al formato de 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 de 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 de 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

WebFOCUS