我已经看到了很多的例子在COBOL读取顺序文件看起来是这样的:模式用于读取顺序输入文件
FD File-Record
01 Input-Record.
88 End-Of-File VALUE HIGH-VALUES.
05 ...
...
READ File-Record
AT END SET End-Of-File TO TRUE
END-READ
PERFORM UNTIL End-Of-File
PERFORM Process-Record
READ File-Record
AT END SET End-Of-File TO TRUE
END-READ
END-PERFORM
的一个问题是,这将是一样好于处理它如下?
PERFORM UNTIL End-Of-File
READ File-Record
AT END SET End-Of-File TO TRUE
NOT AT END PERFORM Process-Record
END-READ
END-PERFORM
我还没有普遍看到第二种模式,但它似乎更简洁,没有多余的我。与第一个相比,它有问题吗?我并不是指上述主题的变体(它们可以根据你如何定义你所定义的内容而进行不同的分组),但我指的是第一条记录的预读模式的概念,这似乎是在我见过的各种例子中受到青睐。
比尔伍德回答了这个问题。在READ之外的启动读取和PERFORM普遍存在的原因是,它是在NOT AT END被添加到READ语法之前很久才完成的。 – 2015-02-24 19:12:34
@GilbertLeBlanc谢谢,这很有趣(+1)。你碰巧知道什么时候引入了NOT AT END? – lurker 2015-02-24 19:39:11
Cobol 85标准X3.23-1985在互联网上不可用。它可以购买。我的回忆是在1985年标准中的NOT AT END子句被添加到Cobol READ语句中。 – 2015-02-24 20:06:38