LOCAT Data Dictionary File

Field

Description

Type

Comments

FILE_ID

File alias (key)

C(16)

 

FIELD_ID

Field Name

C(16)

 

SEQ

Field Sequence

U(2)

Logical field number within the record.

TYPE

Dictionary Type

C(16)

Either a BASE type (as identified below) or a reference to the TYPDEF file.

 

 

 

C Character.

 

 

 

N Numeric.

 

 

 

I Signed Integer.

 

 

 

U Unsigned Integer.

 

 

 

D BCD.

 

 

 

F IEEE Floating point.

 

 

 

B Business Math.

 

 

 

X Resident C Language float type, system dependent.

 

 

 

Y Resident C Language double type, system specific.

FLAG

Flag Bits

U(1)

This is specified in the same format at the second byte from the PRO/5 FATTR() function:

 

 

 

$80$ Variable length field.

 

 

 

$40$ Field terminator is used.

 

 

 

$04$ Swap adjacent 4-byte groups.

 

 

 

$02$ Swap adjacent 2-byte groups.

 

 

 

$01$ Swap adjacent bytes.

TERM

Field Terminator

U(1)

In a traditional PRO/5 environment, this is typically $0A$ (decimal 10) - the linefeed character.

DIM

Array Dimension

U(2)

This is the number of elements in a repeating (array) field, or 1 for a nonrepeating field.

NUM

Field Number

U(2)

Physical field number. This is based on the record layout and counts fields based only on $0A$ delimiters. Field #0 implies the entire record, ignoring delimiters.

OFFSET

Offset within field

U(2)

Offset within the physical field (offset is zero-based).

LENGTH

Field Length

U(2)

 

 

KNUM

Index Name

Field(s)

0

INDEX00

FILE_ID+FIELD_ID

1

FIELD

FIELD_ID

2

INDEX02

FILE_ID+SEQ

3

INDEX03

FILE_ID+NUM+OFFSET+LENGTH

4

TYPE

TYPE_ID

5

FILE

FILE_ID

FATTR() Correlation

The LOCAT file contains all data necessary for understanding the physical structure of a record. Most of the data in LOCAT may be directly related to fields in the string template FATTR() function, as follows:

Field

FATTR() Function

Description

TYPE

FATTR(1,1)

This contains similar data, but is not in the same format. LOCAT stores TYPE information as a 16-character base type or TYPEDEF name, while FATTR() contains a binary number from $01$ to $09$ indicating the base type. The correlation between numbers and base types is:

 

 

$01$ C

Character (string)

 

 

$02$ N

Numeric

 

 

$03$ I

Integer (binary)

 

 

$04$ U

Unsigned Integer (binary)

 

 

$05$ F

IEEE floatingpoint

 

 

$06$ D

BCD (binary-coded decimal)

 

 

$07$ B

Business Math

 

 

$08$ X

Resident C language float type (system specific)

 

 

$09$ Y

Resident C language double type (system specific)

FLAG

FATTR(2,1)

Flag bits.

TERM

FATTR(3,1)

Field terminator (if used).

DIM

FATTR(4,2)

Dimension of repeating field.

NUM

FATTR(6,2)

Field number.

OFFSET

FATTR(8,2)

Offset within the field.

LENGTH

FATTR(10,2)

Field length.