The EXTFMT keyword is used to specify the external data type for compile-time
and prerun-time numeric arrays and tables. The external data type is the format
of the data in the records in the file. This entry has no effect on the format
used for internal processing (internal data type) of the array or table in
the program.
Note: The values specified for EXTFMT will apply to
the files identified in both the TOFILE and FROMFILE keywords, even if the
specified names are different.
The possible values for the
parameter are:
- B
- The data for the array or table is in binary format.
- C
- The data for the array or table is in UCS-2 format.
- I
- The data for the array or table is in integer format.
- L
- The data for a numeric array or table element has a preceding (left)
plus or minus sign.
- R
- The data for a numeric array or table element has a following (right)
plus or minus sign.
- P
- The data for the array or table is in packed decimal format.
- S
- The data for the array or table is in zoned decimal format.
- U
- The data for the array or table is in unsigned format.
- F
- The data for the array or table is in float numeric format.
Note: - If the EXTFMT keyword is not specified, the external format defaults to
'S' for non-float arrays and tables, and to the external display float representation
for float pre-runtime arrays and tables.
- For compile-time arrays and tables, the only values allowed are S, L,
and R, unless the data type is float, in which case the EXTFMT keyword is
not allowed.
- When EXTFMT(I) or EXTFMT(U) is used, arrays defined as having 1 to 5 digits
will occupy 2 bytes per element. Arrays defined as having 6 to 10 digits will
occupy 4 bytes per element. Arrays defined as having 11 to 20 digits will
occupy 8 bytes per element.
- The default external format for UCS-2 arrays is character. The number
of characters allowed for UCS-2 compile-time data is the number of double-byte
characters in the UCS-2 array. If graphic data is included in the data,
the presence of double-byte data and the shift-out and shift-in characters
in the data will reduce the actual amount of data that can be placed in the
array element; the rest of the element will be padded with blanks. For example,
for a 4-character UCS-2 array, only one double-byte character can be specified
in the compile-time data; if the compile-time data were 'oXXi', where 'XX'
is converted to the UCS-2 character U'yyyy', the UCS-2 element would contain
the value U'yyyy002000200020'.