我的顺序文件中有 n 条记录,我必须使用 COBOL 程序删除顺序文件中的最后 3 条记录。我怎样才能做到这一点?
最佳答案
是的,有一些技巧,但它们都不能移植到不同的 Cobol 编译器和不同的操作系统版本。
如果您想以纯粹、完全可移植的 Cobol 风格执行此操作,请一次读取缓冲三个记录的整个文件,并在每个记录从缓冲区中删除时写入它。当您到达文件末尾时,只需停止写入缓冲记录即可删除最后三个记录。
一些伪 Cobol 可能看起来像这样:
Perform Fill-Buffer
Perform until End-Of-File
Perform Write-Buffer
Perform Fill-Buffer
End-Perform
.
Write-Buffer.
Write OUTPUT-FILE
from The-Buffer (TOP-OF-BUFFER)
End-Write
.
Fill-Buffer.
* Do reads to fill a 3 position ring buffer
* and adjust TOP-OF-BUFFER to the current record...
.
这实际上最好使用 SORT 之类的实用程序来完成。但您可以使用 Cobol 来做到这一点。
关于cobol - 如何删除连续文件中的最后3条记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4924771/