cobol - 如何删除连续文件中的最后3条记录

标签 cobol

我的顺序文件中有 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/

相关文章:

套接字和 COBOL

cobol - 当列与 COBOL REPORT WRITER 模块中的 SUM 子句一起使用时,您能否引用 DECLARATIVES 部分中的列?

apache-kafka - 如何将消息直接从现有的大型机应用程序发布到 Kafka 主题?

algorithm - COBOL 冒泡排序仅对表的最后一个元素进行排序

linux - Cobol - 语法错误,意外的 $undefined,期望 "end of file"

c# - COM 互操作 : Variable number of parameters

rounding - 默认情况下,COBOL 如何处理除法舍入?

sqlite - 如何在 COBOL 中编写 SQLite 回调

java - 是否存在一种在 COBOL 中标准化的 Java 互操作形式?

c# - 将 safearray 中的 PIC N(n) 传递给 COM 对象