我已經看到了很多的例子在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