Closed Subroutines �������������������������������������������������������������������������������������������������������������������������������������������� 112
COBOL Subroutines ������������������������������������������������������������������������������������������������������������������������������������������� 112
Why Use Open Subroutines? ����������������������������������������������������������������������������������������������������������������������������� 112
PERFORM NamedBlock�������������������������������������������������������������������������������������������������������������������������������������� 113
How PERFORM Works ���������������������������������������������������������������������������������������������������������������������������������������� 113
PERFORM��THRU Dangers ���������������������������������������������������������������������������������������������������������������������������������� 115
Using PERFORM��THRU Correctly ����������������������������������������������������������������������������������������������������������������������� 115
PERFORM��TIMES ����������������������������������������������������������������������������������������������������������������������116
Inline Execution ������������������������������������������������������������������������������������������������������������������������������������������������� 117
Out-of-Line Execution ���������������������������������������������������������������������������������������������������������������������������������������� 118
PERFORM��UNTIL �����������������������������������������������������������������������������������������������������������������������118
Notes on PERFORM��UNTIL �������������������������������������������������������������������������������������������������������������������������������� 119
How PERFORM��UNTIL Works����������������������������������������������������������������������������������������������������������������������������� 119
PERFORM��VARYING �������������������������������������������������������������������������������������������������������������������120
Notes on PERFORM��VARYING ���������������������������������������������������������������������������������������������������������������������������� 121
How PERFORM��VARYING Works ������������������������������������������������������������������������������������������������������������������������ 121
Summary �����������������������������������������������������������������������������������������������������������������������������������124
References ��������������������������������������������������������������������������������������������������������������������������������129
Chapter 7: Intr
■
oduction to Sequential Files �������������������������������������������������������������������131
What Is a File? ���������������������������������������������������������������������������������������������������������������������������131
Terminology ������������������������������������������������������������������������������������������������������������������������������������������������������� 132
Files, Records,
and Fields ���������������������������������������������������������������������������������������������������������������������������������� 132
How Files Are Processed ����������������������������������������������������������������������������������������������������������������������������������� 133
Implications of Buffers �������������������������������������������������������������������������������������������������������������������������������������� 134
File and Record Declarations ����������������������������������������������������������������������������������������������������������������������������� 134
xi
■ Contents
Creating a Record ���������������������������������������������������������������������������������������������������������������������������������������������� 135
Declaring the Record Buffer in Your Program ���������������������������������������������������������������������������������������������������� 135
The SELECT and ASSIGN Clause ������������������������������������������������������������������������������������������������������������������������ 136
SELECT and ASSIGN Syntax ������������������������������������������������������������������������������������������������������������������������������� 137
Processing Sequential Files ������������������������������������������������������������������������������������������������������138
The OPEN Statement ����������������������������������������������������������������������������������������������������������������������������������������� 139
The CLOSE Statement ���������������������������������������������������������������������������������������������������������������������������������������� 139
The READ Statement ����������������������������������������������������������������������������������������������������������������������������������������� 140
How READ Works ����������������������������������������������������������������������������������������������������������������������������������������������� 140
The WRITE Statement ���������������������������������������������������������������������������������������������������������������������������������������� 143
Summary �����������������������������������������������������������������������������������������������������������������������������������146
■Chapter 8: Adv
anced Sequential Files ���������������������������������������������������������������������������157
Files with Multiple Record Types ����������������������������������������������������������������������������������������������157
Problem Specification���������������������������������������������������������������������������������������������������������������������������������������� 157
Implications of Files with Multiple Record Types ���������������������������������������������������������������������������������������������� 157
Multiple Record Descriptions, One Record Buffer ��������������������������������������������������������������������������������������������� 159
The Type Code ��������������������������������������������������������������������������������������������������������������������������������������������������� 159
Printer Sequential Files ���������������������������������������������������
����������������������������������������������������������166
SELECT and ASSIGN ������������������������������������������������������������������������������������������������������������������������������������������� 167
What Is in a Report �������������������������������������������������������������������������������������������������������������������������������������������� 167
Problem of Multiple Print Records ��������������������������������������������������������������������������������������������������������������������� 168
Solution to the Multiple Print Record Problem �������������������������������������������������������������������������������������������������� 168
WRITE Syntax Revisited ������������������������������������������������������������������������������������������������������������������������������������� 169
Michael Coughlan Page 72