Cobol - 是否可以删除Sequential文件中的记录?

Cob*_*ver 1 cobol mainframe

我需要删除前x行,我需要通过Cobol来完成.可能吗?似乎DELETE语句仅适用于VSAM文件?

csc*_*eid 7

你说你必须通过COBOL这样做,但没有提供理由.通常,这种类型的操作是通过您商店的SORT实用程序完成的.大型机SORT实用程序通常包括复杂的记录选择标准.

是的,可以使用COBOL执行此操作.您在默认声明中的说法是正确的,即DELETE仅适用于VSAM.对于顺序文件,您必须读取整个文件,忽略前x个记录,然后将其余内容写入新的输出文件.我建议您编写COBOL代码,使其接受一个参数,指示要忽略的记录数(在您的示例中为x),如果文件中的记录少于x,则使用特定的返回码退出.

如果你的愿望,你可以使用C运行时例程(fopen,fread,fwrite,fclose为文件)I/O,以使你的程序通用的,具体到一个特定的文件.COBOL要求在编译时知道LRECL,C运行时例程可以通过语言环境(LE)的宽限直接从COBOL调用,删除此要求.

重申一下:这通常是通过您商店的SORT实用程序完成的.