Статус документа
Статус документа

ГОСТ 22558-89 (СТ СЭВ 6184-88, ИСО 1989-85) Язык программирования Кобол. Части 8-17

     4.6. Оператор REWRITE (ОБНОВИТЬ)

4.6.1. Назначение

Оператор REWRITE (ОБНОВИТЬ) логически заменяет запись в файле на устройстве массовой памяти.

4.6.2. Общий формат

REWRITE имя-записи-1 [FROM идентификатор-1]

[INVALID KEY повелительный-оператор-1]

[NOT INVALID KEY повелительныйгоператор-2]

[END-REWRITE]

 ОБНОВИТЬ имя-записи-1 [ИЗ ПОЛЯ идентификатор-1]

[ПРИ ОШИБКЕ КЛЮЧА иовелительный-оператор-1]

[БЕЗ ОШИБКИ КЛЮЧА повелительный-оператор-2]

[КОНЕЦ-ОБНОВИТЬ]

4.6.3. Синтаксические правила

(1) Имя-записи-1 и идентификатор-1 не должны относиться к одной и той же области памяти.

(2) Имя-записи-1 - это имя логической записи в секции файлов раздела данных. Оно может быть уточнено.

(3) Если для соответствующего имени-файла не указана процедура USE AFTER STANDARD EXCEPTION (ИСПОЛЬЗОВАТЬ ПОСЛЕ СТАНДАРТНОЙ ПРОЦЕДУРЫ ОШИБКИ), фразы INVALID KEY (ПРИ ОШИБКЕ КЛЮЧА) и NOT INVALID KEY (БЕЗ ОШИБКИ КЛЮЧА) должны указываться.

4.6.4. Общие правила

(1) Файл, связанный с именем-записи-1, должен быть файлом массовой памяти и должен быть открыт как входной-выходной во время выполнения этого оператора (см. п.4.4 настоящей части).

(2) Для файлов с последовательным доступом последним оператором ввода-вывода для соответствующего файла перед выполнением оператора REWRITE (ОБНОВИТЬ) должен быть успешно выполненный оператор READ (ЧИТАТЬ). СУМП логически заменяет запись, которая была извлечена оператором READ (ЧИТАТЬ).

               

(5) Выполнение оператора REWRITE (ОБНОВИТЬ) с фразой FROM (ИЗ ПОЛЯ) эквивалентно выполнению следующих операторов в указанном порядке:

а) оператор

MOVE идентификатор-1 ТО имя-записи-1.

ПОМЕСТИТЬ идентификатор-1 В имя-записи-1 соответственно правилам, описанным для оператора MOVE (ПОМЕСТИТЬ);

б) тот же оператор REWRITE (ОБНОВИТЬ) без фразы FROM (ИЗ ПОЛЯ).

          

(7) Выполнение оператора REWRITE (ОБНОВИТЬ) не влияет на указатель позиции файла.

(8) Выполнение оператора REWRITE (ОБНОВИТЬ) вызывает обновление состояния ввода-вывода для файла, связанного с именем-записи-1 (см. п.1.3.4 настоящей части).

(9) При выполнении оператора REWRITE (ОБНОВИТЬ) логическая запись передается операционной системе.

(10) Передача управления после успешного или неуспешного выполнения оператора REWRITE (ОБНОВИТЬ) зависит от наличия или отсутствия в операторе REWRITE (ОБНОВИТЬ) необязательных фраз INVALID KEY (ПРИ ОШИБКЕ КЛЮЧА) и NOT INVALID KEY (БЕЗ ОШИБКИ КЛЮЧА) (см. п.1.3.5 настоящей части).