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.
ITOPACK(maxbytes, infield, output)
donde:
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:
A8
Es el campo que contiene el número binario. Los formatos USAGE y ACTUAL del campo deben ser A8.
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.
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 |