The FILE-CONTROL paragraph contains the file-related specifications.
1 – 1format_sequential
FILE-CONTROL. Format 1 - Sequential File SELECT [OPTIONAL] file-name { ASSIGN TO [ EXTERNAL ] file-spec } { [ DYNAMIC ] } { } { ASSIGN TO [ EXTERNAL ] { data-name } } { [ DYNAMIC ] { literal } } { { DISK } } { { PRINTER } } [ RESERVE reserve-num [ AREA ] ] [ [ AREAS ] ] [ [ ORGANIZATION IS ] SEQUENTIAL ] [ BLOCK CONTAINS [smallest-block TO] blocksize { RECORDS } ] [ { CHARACTERS } ] [CODE-SET IS alphabet-name] [PADDING CHARACTER IS pad-char] [RECORD DELIMITER IS STANDARD-1] [ACCESS MODE IS SEQUENTIAL] [LOCK MODE IS { AUTOMATIC [WITH LOCK ON RECORD] } ] [ { EXCLUSIVE } ] [FILE STATUS IS file-stat] .
2 – 2format_line_sequential
FILE-CONTROL. Format 2 - Line Sequential File SELECT [OPTIONAL] file-name { ASSIGN TO [ EXTERNAL ] file-spec } { [ DYNAMIC ] } { } { ASSIGN TO [ EXTERNAL ] { data-name } } { [ DYNAMIC ] { literal } } { { DISK } } { { PRINTER } } [ RESERVE reserve-num [ AREA ] ] [ [ AREAS ] ] [ [ ORGANIZATION IS ] LINE SEQUENTIAL ] [ BLOCK CONTAINS [smallest-block TO] blocksize { RECORDS } ] [ { CHARACTERS } ] [CODE-SET IS alphabet-name] [PADDING CHARACTER IS pad-char] [RECORD DELIMITER IS STANDARD-1] [ACCESS MODE IS SEQUENTIAL] [LOCK MODE IS { AUTOMATIC [WITH LOCK ON RECORD] } ] [ { EXCLUSIVE } ] [FILE STATUS IS file-stat] .
3 – 3format_relative
FILE-CONTROL. Format 3 - Relative File SELECT [OPTIONAL] file-name { ASSIGN TO [ EXTERNAL ] file-spec } { [ DYNAMIC ] } { } { ASSIGN TO [ EXTERNAL ] { data-name } } { [ DYNAMIC ] { literal } } { { DISK } } { { PRINTER } } [ RESERVE reserve-num [ AREA ] ] [ [ AREAS ] ] [ ORGANIZATION IS ] RELATIVE [ BLOCK CONTAINS [smallest-block TO] blocksize { RECORDS } ] [ { CHARACTERS } ] [RECORD DELIMITER IS STANDARD-1] [ { SEQUENTIAL [RELATIVE KEY IS rel-key] } ] [ ACCESS MODE IS { { RANDOM } RELATIVE KEY IS rel-key } ] [ { { DYNAMIC } } ] [ { MANUAL WITH LOCK ON MULTIPLE RECORDS } ] [LOCK MODE IS { AUTOMATIC [WITH LOCK ON RECORD] } ] [ { EXCLUSIVE } ] [FILE STATUS IS file-stat] .
4 – 4format_indexed
FILE-CONTROL. Format 4 - Indexed File SELECT [OPTIONAL] file-name { ASSIGN TO [ EXTERNAL ] file-spec } { [ DYNAMIC ] } { } { ASSIGN TO [ EXTERNAL ] { data-name } } { [ DYNAMIC ] { literal } } { { DISK } } { { PRINTER } } [ RESERVE reserve-num [ AREA ] ] [ [ AREAS ] ] [ ORGANIZATION IS ] INDEXED [ BLOCK CONTAINS [ smallest-block TO ] blocksize { RECORDS } ] [ { CHARACTERS } ] [RECORD DELIMITER IS STANDARD-1] [ { SEQUENTIAL } ] [ ACCESS MODE IS { RANDOM } ] [ { DYNAMIC } ] [RECORD KEY IS { rec-key | seg-key = {seg}... } ] [ [WITH DUPLICATES] [ ASCENDING ] ] [ [ DESCENDING ] ] [ALTERNATE RECORD KEY IS { alt-key | seg-key = {seg}... } ] [ [WITH DUPLICATES] [ ASCENDING ] ] [ [ DESCENDING ] ] ... [ { MANUAL WITH LOCK ON MULTIPLE RECORDS } ] [LOCK MODE IS { AUTOMATIC [WITH LOCK ON RECORD] } ] [ { EXCLUSIVE } ] [FILE STATUS IS file-stat] .
5 – 5format_sort-merge
FILE-CONTROL. Format 5 - Sort or Merge File SELECT file-name { ASSIGN TO [ EXTERNAL ] file-spec } { [ DYNAMIC ] } { } { ASSIGN TO [ EXTERNAL ] { data-name } } { [ DYNAMIC ] { literal } } { { DISK } } { { PRINTER } }
6 – 6format_report
FILE-CONTROL. Format 6 - Report File SELECT file-name { ASSIGN TO [ EXTERNAL ] file-spec } { [ DYNAMIC ] } { } { ASSIGN TO [ EXTERNAL ] { data-name } } { [ DYNAMIC ] { literal } } { { DISK } } { { PRINTER } } [ RESERVE reserve-num [ AREA ] ] [ [ AREAS ] ] [ [ ORGANIZATION IS ] SEQUENTIAL ] [ BLOCK CONTAINS [smallest-block TO] blocksize { RECORDS }] [ { CHARACTERS }] [CODE-SET IS alphabet-name] [PADDING CHARACTER IS pad-char] [RECORD DELIMITER IS STANDARD-1] [ACCESS MODE IS SEQUENTIAL] [FILE STATUS IS file-stat] .
7 – clauses
7.1 – ASSIGN
The ASSIGN clause associates a file with a partial or a complete file specification. Format - ASSIGN TO file-spec
7.1.1 – file-spec
is a nonnumeric literal or a COBOL word formed according to the rules for user-defined names. It represents a partial or complete file specification.
7.2 – BLOCK_CONTAINS
The BLOCK CONTAINS clause specifies the size of a physical record. Format - BLOCK CONTAINS [smallest-block TO] blocksize { RECORDS } { CHARACTERS }
7.2.1 – smallest-block
is an integer literal. It specifies the minimum physical record size.
7.2.2 – blocksize
is an integer literal. It specifies the exact or maximum physical record size.
7.3 – CODE-SET
The CODE-SET clause specifies the representation of data on external media. Format - CODE-SET IS alphabet-name
7.3.1 – alphabet-name
is the name of a character set defined in the SPECIAL-NAMES paragraph. It cannot be described with literals in the ALPHABET clause.
7.4 – LOCK_MODE
The LOCK MODE clause specifies a locking technique to use for a file. LOCK MODE is part of the X/Open COBOL standard. Format - [ { MANUAL WITH LOCK ON MULTIPLE RECORDS } ] [LOCK MODE IS { AUTOMATIC [WITH LOCK ON RECORD] } ] [ { EXCLUSIVE } ]
7.5 – ORGANIZATION
The ORGANIZATION clause specifies a file's logical structure. Format - { SEQUENTIAL } [ ORGANIZATION IS ] { LINE SEQUENTIAL } { RELATIVE } { INDEXED }
7.6 – PADDING_CHARACTER
The PADDING CHARACTER clause specifies the character to be used to pad blocks in sequential files. Format - PADDING CHARACTER IS pad-char
7.6.1 – pad-char
is a one-character nonnumeric literal or the data-name of a one-character data item. The data-name can be qualified.
7.7 – RECORD_DELIMITER
The RECORD DELIMITER clause indicates the method of determining the length of a variable record on the external medium. It is for documentation only. Format - RECORD DELIMITER IS STANDARD-1
7.8 – RESERVE
The RESERVE clause specifies the number of input-output buffers for a file. Format - RESERVE reserve-num [ AREA ] [ AREAS ]
7.8.1 – reserve-num
is an integer literal from 1 through 127. It specifies the number of input-output areas for the file.