|
3.3 The DATA DIVISION
The data division is where memory space in the computer is allocated to data and identifiers that are to be
used by the program. Two important sections of this division are the FILE SECTION and the WORKING-STORAGE SECTION.
The file section is used to define the structure, size and type of the data that will be read from or written to a file.
Suppose the 'input.dat' file (described above) contains a series of records about a companies customers, giving details
of name, address, and customer number. If you were to open 'input.dat' with a text editor you would see each
record on a new line like this:
Notes: 'FD' stands for File Descriptor, and names the file, INPUT-FILE (assigned in the environment
division), and describes the exact structure of the data in each record. All records in this file MUST be
of exactly the same structure. '01 CUSTOMER-DATA' is the group name and refers to all of the single record that is read into the computer memory from the file. The higher numbers (levels), 03.. and 05.. will contain the indivual fields of the record. Both FD and 01 are written in area A while higher levels are in area B. Level 01 is sub-grouped into level 03 fields. Notice that one of the level 03 sub-groups is itself sub-grouped into level 05. The sub-grouping could continue upwards as required to 07, 09 etc.. These numbers (except level 01) could as easily be 02, 03, 04 ...or any increasing number scale. There are some numbers (i.e. 66, 77 and 88) which actually have other uses but these will be discussed in the Defining Data section. The PIC (short for PICTURE) clause indicates the size and type of data that that field contains. For example, in line 000450, the data name (identifier) NAME has been defined as holding 12 characters of alphnumeric data. It could have been written as PIC XXXXXXXXXXXX be that's a pain. 'X' means alphnumeric and can contain any ASCII character. However, even if it contained '2' you could not do any calculations on this as the information is stored as the ASCII code for the character '2', rather than the actual number 2. Line 000470 defines HOUSE-NUMBER as PIC 9(2), which can hold a 2-digit number. You can do calculations with this since '9' is used to denote a numeric field.
Notice how the group names (CUSTOMER-DATA and ADDRESS) do not have PIC descriptions. This is because the higher level field descriptions when added together will be the size of the group name, i.e. CUSTOMER-NUMBER will hold 46 characters which turns out to be the size of each record (spaces are included). You can refer to these group names but when doing so all data will be treated as alphanumeric and cannot be used for calculations, even if all of the higher group items are numeric. The WORKING-STORAGE SECTION of the data division is for defining data that is to be stored in temporary memory, i.e. during program run-time. Effectively, this is where, for example, an identifier is defined that will hold the result of a calculation.
A further section of the data division is the LINKAGE SECTION, which is used to facilitate the sharing of data between programs (or sub-programs). See below.
| ||||