Что означает статус файла Cobol 9Â?

Моя проблема заключается в том, что когда я пытаюсь открыть на входе огромный файл (6 ГБ), появляется сообщение:

      cobol file status code 9Â

Я скомпилировал программу и у нее нет ошибок, но когда я пытаюсь запустить ее, я использую маленькую (3 ГБ например) моя программа работает правильно.

Любые идеи ?

Объявление переменной:

      SELECT                                                       
MYFILE ASSIGN     MYFILE
ACCESS SEQUENTIAL 
STATUS IS XZ-STATUS6.  
===
OPEN INPUT  MYFILE 
===
READ  MYFILE NEXT AT  END  MOVE  1  TO  ZFIN-F3

2 ответа

Вы можете взглянуть на эту ссылку , которая содержит некоторую информацию, которая может применяться в вашем случае. Некоторая информация, включенная туда:

  1. О статусе файла

Если у вас есть элемент данных о состоянии файла, определенный для файла, то после каждой операции ввода/вывода в файле (ОТКРЫТИЕ, ЗАКРЫТИЕ, ЧТЕНИЕ, ЗАПИСЬ, ПЕРЕЗАПИСЬ, ЗАПУСК и УДАЛЕНИЕ) система времени выполнения обновляет его, чтобы указать, как операция завершена.

Определение элемента данных состояния файла является необязательным. Если элемент данных о состоянии файла не объявлен и возникает серьезная ошибка файла, система времени выполнения COBOL отображает сообщение об ошибке и прерывает вашу программу.

Вы должны проверять элемент данных состояния файла после каждой операции ввода/вывода, чтобы убедиться, что операция завершена успешно.

  1. Об элементе данных о состоянии файла

Статус файла представляет собой двухбайтовый код. Если первый байт элемента данных состояния файла содержит значение 9, это указывает на системную ошибку времени выполнения COBOL. В этом случае второй байт представляет собой двоичное поле, содержащее код ошибки.

  1. Пример кода (состояние ws-file соответствует вашему XZ-STATUS6)

             ...
     working-storage section.
     01 ws-file-status.
        05 status-key-1                          pic x.
        05 status-key-2                          pic x.
        05 binary-status redefines status-key-2  pic 99 comp-x.
     ...
     ...
     procedure division.
     ...
     perform check-status.
     ...
     check-status.
        evaluate status-key-1
           when "0" next sentence
           when "1" display "end of file reached"
           ...
           when "9" display "run-time-system error"
              perform check-mf-error-message
        end-evaluate.
     ...
     check-mf-error-message.
        evaluate binary-status
           when 002 display "file not open"
           when 007 display "disk space exhausted"
           when 013 display "file not found"
           when 024 display "disk error    "
           when 065 display "file locked      "
           when 068 display "record locked    "
           when 039 display "record inconsistent"
           when 146 display "no current record  "
           when 180 display "file malformed     "
           when 208 display "network error      "
           when 213 display "too many locks     "
           when other display "not error status "
           display binary-status
        end-evaluate.
    

Обратите внимание, если ваше (причудливое) значение будет соответствовать любому из перечисленных значений для (в пределах ), но, по крайней мере, это должно помочь узнать, как правильно отображать фактический код состояния файла.

спасибо всем за ваши ценные отзывы, проблема была в размере массива, который я использую для вычисления некоторых больших чисел, я установил свой массив на максимум, и теперь он работает нормально

Другие вопросы по тегам