精通cobol--9.5.2 使用输入文件载入方式初始化表

来源:互联网 发布:阿里巴巴淘宝城规划 编辑:程序博客网 时间:2024/06/06 03:51

使用输入文件载入方式初始化表,首先需要有一个输入文件。该输入文件保存表中各数据的初始化值。将该输入文件在过程部读入后,使用前面讲到的PERFORM VARYING语句完成对表的初始化。对于硬性编码初始表所用到的例子,可以通过输入文件载入方式来初始化。首先,需要有一个输入文件,不妨假设该文件的文件名为INPUT-WEEK-FILE。该文件的内容如表所示。

  INPUT-WEEK-FILE文件内容

MONDAY

TUESDAY

WEDNESDAY

THURSDAY

FRIDAY

SATURDAY

SUNDAY

每行对应该文件的一个记录。可以看到,该文件的记录对应周一至周日这七天的数据,正好为硬性编码中赋给表中各数据的初始化值。在使用输入文件载入方式初始化表前,首先要对表进行定义。这点和硬性编码方式是不同的。在硬性编码方式里,是直接通过REDEFINES对表进行定义的。定义代码如下。

01   WEEK-TABLE-TWO.

     05   DAYS     PIC X(10)

                    OCCURS  7  TIMES.

    05    DAY-SUB   PIC 9     USAGE IS COMP.

同时,对输入文件也要进行定义。定义输入文件的方式主要用到前面所讲FD语句。通过使用FD语句,在数据部的文件节里对输入文件进行定义。代码如下。

DATA DIVISION.

FILE SECTION.

FD  INPUT-WEEK-FILE

RECORDING MODE IS F.

01  INPUT-DATA      PIC X(10).

以上代码中,INPUT-WEEK-FILE为该输入文件的文件名。INPUT-DATA为该文件中每条记录的名称。每条记录的模式为F,也就是定长模式。

完成了表和输入文件的定义后,便可以通过以下代码完成对表的初始化了。

100-MAIN.

READ   INPUT-WEEK-FILE.

PERFORM   200-PROCESS-RECORD

             VARYING DAY-SUB   FROM 1 BY 1

             UNTIL    DAY-SUB > 7.

……

200-PROCESS-RECORD.

MOVE  IN-DATA   TO   DAYS  (DAY-SUB).

READ  INPUT.WEEK.DATA.

这里所使用的初始化方式便是输入文件载入方式。该方式的特点是将初始化数据保存在文件中。对表进行初始化时,先要将文件载入到程序中。载入文件数据后,再通过PERFORM VARYING语句依次对表中各项数据进行赋值,从而完成对表的初始化。

总之,对于数据量小,并且数据不是经常用到的情况下,数据多为临时数据。因此通常采用硬性编码方式初始化表;对于数据量大,数据需要经常用到的情况下,数据应该保存在文件上。因此通常采用输入文件载入方式初始化表。