Come: |
Lingue disponibili: reporting, Maintain
La funzione ITOPACK converte un valore intero binario di grandi dimensioni, in una origine dati non-FOCUS, in un formato decimale compresso.
Alcune lingue di programmazione e alcuni sistemi di memorizzazione dati non-FOCUS usano formati di valori interi binari a parola-doppia. Questi formati sono simili ai valori interi binari a parola singola usati da FOCUS, ma consentono numeri di dimensioni più grandi. Tuttavia, i valori interi binari di grandi dimensioni (lunghi più di 4 byte) non sono supportati nel file principale, quindi richiedono la conversione nel formato decimale compresso.
È necessario specificare quanti byte all'estrema destra nel campo d'immissione sono significativi. Il risultato è un campo decimale compresso di 8 byte fino a 15 posizioni numeriche significative (per esempio, P15 o P16.2).
Limite: Per un campo definito come 'PIC 9(15) COMP' o l'equivalente (15 cifre significative), il numero massimo da convertire è 167,744,242,712,576.
ITOPACK(maxbytes, infield, output)
dove:
Numerico
Numero massimo di byte nel campo di immissione binario da 8 byte con dati numerici significativi, incluso il segno binario.
I valori validi sono:
A8
Campo che contiene il numero binario. I formati USAGE e ACTUAL del campo devono essere A8.
Numerico
Nome del campo che contiene il risultato o il formato del valore di emissione racchiuso tra virgolette singole. Il formato deve essere Pn o Pn.d.
Supporre che un numero binario in un file esterno presenti il seguente formato COBOL:
PIC 9(8)V9(4) COMP
Tale funzione è definita nel file principale EUROCAR come campo chiamato BINARYFLD. I formati campo della funzione sono USAGE=A8 e ACTUAL=A8, poiché la sua lunghezza è maggiore di 4 byte.
La seguente richiesta converte il campo in formato decimale compresso:
DEFINE FILE EUROCAR
PACKFLD/P14.4 = ITOPACK(6, BINARYFLD, PACKFLD);
END
TABLE FILE EUROCAR
PRINT PACKFLD BY CAR
END
WebFOCUS |