如果在2个平面文件中找不到匹配项,如何防止Cobol程序进入无限循环?
Cobol程序从第一个平面文件中读取记录,并将其与第二个平面文件中的第一个记录进行比较。但是,因为第一个平面文件中的第一个记录与第二个平面文件中的任何记录都不匹配,所以Cobol程序进入无限循环。我如何解决它?
没有找到相关结果
已邀请:
3 个回复
薄扩络拜
其中:
是您在OPEN / READ / WRITE / CLOSE语句中引用的名称。
是外部文件名(来自JCL的DDNAME)。
是声明的双字符数据项 在工作 - 存储下。 在每个文件I / O操作上设置文件状态。例如:
如果没有更多的记录要读,则将
设置为文件结尾。请注意文件状态 变量实际上并未在
上引用,但它已设置。 文件状态值是两个字符,并且在ISO COBOL标准中定义,它们应该 对于所有COBOL实现都是一样的。例外的文件状态值是第一个 字符是'9',这些是依赖于实现的。这是IBM Enterprise的链接 COBOL文件状态值 文件结尾的值为:'10' - 对于所有COBOL实现应该是相同的。 我猜你的程序对每个输入文件都有一个文件状态,但是没有检查它或对它作出反应 适当。例如,您的程序可能只检查文件结尾但不检查其他条件:
这种方法的问题在于它处理正常返回(fstatus = '00')和所有非文件结束错误 条件好像READ成功了。最好有类似的东西:
语句有一种命令式形式,用于指定文件结束时要执行的操作 到达了。它类似于:
同样,如果在FILE-CONTROL部分为
和非文件结束指定了文件状态 发生错误,您的程序将尝试继续“正常”逻辑 - 完全错误的事情 这样做。
呸溉
号拳藐孔妇