我可以在文件中写多个结构吗?

时间:2014-11-12 13:36:57

标签: cobol

我有FD

   FD  CR1
       LABEL RECORD IS STANDARD
       DATA RECORDS ARE FIRSTSTR, SECONDSTR, THIRDSTR.

和3个结构

   01  FIRSTSTR.
       05 FIRSTFIVE       PIC X(05).
       05 SECONDFIVE       PIC X(05).

   01  SECONDSTR.
       05 FIRSTTWO       PIC X(02).
       05 SECONDONE       PIC X(01).
       05 THIRDFOUR       PIC X(04).

   01  THIRDSTR.
       05 FIRSTTHREE       PIC X(03).
       05 SECONDTHREE       PIC X(03).
       05 THIRDTHREE       PIC X(03).

我可以在文件中写下所有信息:

WRITE FIRSTSTR, SECONDSTR, THIRDSTR.

从3个结构中读取文件:

READ CR1 INTO FIRSTSTR, SECONDSTR, THIRDSTR AT END

1 个答案:

答案 0 :(得分:4)

是的,您可以将多种类型的记录写入文件,但不是,您无法按照自己的方式进行记录。

FD下的记录定义(结构)都占用相同的存储空间,这意味着所有01级别都从相同的字节地址开始。单个记录不能同时包含不同的数据。

这被称为"隐含的REDEFINES"。

READ ... INTO ...将读取并同时将当前记录复制到您指定的INTO项目(单数)。 INTO项目通常位于WORKING-STORAGE(尽管它们也可能位于LOCAL-STORAGE中)。使用LINKAGE SECTION非常非常奇怪地使用FILE SECTION中的某些内容作为READ ... INTO...的目标,这是异乎寻常的。

您一次只能READ一条记录。除非你的文件有一套固定的,固定的,不同记录的序列,否则我们通常READ文件,识别记录,然后处理特定类型的记录。

您只能为READ ... INTO ...指定一个接收项目,并且WRITE ... FROM ...只能指定一个接收项目。