从文件中读取数据而不使用 perform until 和 at end

Read data from file without using perform until and at end

我正在尝试使用 Cobol 读取数据并遵循限制

不允许使用:

AT END 子句

执行到

如果-否则

Switch case 语句

迭代语句

   002-READ.
        READ d-attendance
        IF (?????)
           perform  002-READ
        END-IF.

我正在尝试用上面的代码模拟一个循环,但我不知道我应该如何编写 IF 语句,有没有什么方法可以在不使用 AT END 的情况下检测 EOF?

当你第一次在file-control下定义你的文件时,你可以这样定义它:

select my-file
    assign to 'ifile.txt'
    organization is line sequential
    file status is fs. 

现在,当您从文件中读取时,fs 变量的值会发生变化。例如,当没有发现错误时,fs 取值 00。可以找到更多信息 here.

如果您不允许使用您列出的此类语句,那么您可以调用递归读取一行的函数,直到 fs 不等于 00