cobol Open-IO:创建文件(如果不存在)

时间:2009-12-16 07:57:53

标签: file-io cobol

有没有人知道如果你试图打开一个IO文件(如果它不存在),然后创建一个新文件,你怎么能捕获cobol抛出的异常?

2 个答案:

答案 0 :(得分:3)

SELECT原因上的可选短语将执行此操作:

SELECT OPTIONAL FILE-A 
   ASSIGN TO "INFILE" 
   ORGANIZATION INDEXED. 

如果OPEN IO,将在必要时创建文件。对于OPEN INPUT,文件未被创建但被视为处于EOF,所有随机读取将为“INVALID KEY”。

我很确定这是一个ANSI标准条款,但不记得它何时出现。

答案 1 :(得分:1)

我不知道你使用的是什么版本的Cobol或者你使用它的平台。我的程序首先检查文件是否存在,然后再尝试打开它。我在MCP主机平台上使用Unisys Cobol 85。消息是蹩脚的,但谁在乎?

以下是每天运行的作业的摘录:

968545     IF  ATTRIBUTE RESIDENT OF OU3-WORK-LIST-FILE = VALUE TRUE  
968550         DISPLAY "PROGRAM SHOWS ATTRIBUTE TRUE"                 
968555         OPEN EXTEND OU3-WORK-LIST-FILE                         
968560     ELSE                                                       
968565         DISPLAY "PROGRAM SHOWS FALSE"                          
968570         OPEN OUTPUT OU3-WORK-LIST-FILE                         
968575     END-IF.                                                    
968580                                    

凯西