cobol Open-IO: создать файл, если он не существует - PullRequest
2 голосов
/ 16 декабря 2009

Кто-нибудь знает, как вы можете поймать исключение, которое выбрасывает cobol, если вы пытаетесь открыть файл IO, если он не существует, а затем создать новый файл?

Ответы [ 2 ]

3 голосов
/ 17 декабря 2009

ФАКУЛЬТАТИВНАЯ фраза по причине ВЫБОР будет делать это:

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

Если OPEN IO, файл будет создан при необходимости. Для ОТКРЫТОГО ВХОДА файл не будет создан, но обработан как находящийся в EOF, и все случайные чтения будут "НЕВЕРНЫЙ КЛЮЧ".

Я почти уверен, что это стандартное предложение ANSI, но не могу вспомнить, когда оно появилось.

1 голос
/ 17 декабря 2009

Я не знаю, какую версию Cobol вы используете или на какой платформе вы ее используете. Моя программа сначала проверяет, существует ли файл, прежде чем пытается его открыть. Я использую Unisys Cobol 85 на платформе MCP. Сообщения хромают, но кого это волнует?

Вот фрагмент из задания, которое выполняется ежедневно:

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                                    

Cathy

...