Перейти к основному содержимому
Модуль 5 · Урок 1 из 29/10 в курсе~15 min
Уроки модуля (1/2)

Определение файла и управление файлами

В COBOL управление внешними файлами (такими как текстовые архивы или двоичные записи на диске) является одной из наиболее важных функций пакетных корпоративных приложений. Поскольку COBOL был разработан задолго до появления современных баз данных, в качестве основного хранилища выступают дисковые файлы.

Соединение физических файлов, хранящихся в операционной системе, с внутренними переменными программы происходит в два этапа:

  1. Логико-физическая ассоциация в ENVIRONMENT DIVISION.
  2. Определение записи данных в DATA DIVISION.

1. Ассоциация: FILE-CONTROL и SELECT ASSIGN.

В главе, посвященной структуре программы, мы рассмотрели ENVIRONMENT DIVISION. Внутри него INPUT-OUTPUT SECTION содержит абзац FILE-CONTROL, в котором объявляются внешние файлы, используемые программой.

Чтобы связать логический файл в программе (например, SALES-FILE) с реальным физическим файлом на диске (например, sales.dat), используйте оператор SELECT ... ASSIGN TO ...:

COBOL
       ENVIRONMENT DIVISION.
       INPUT-OUTPUT SECTION.
       FILE-CONTROL.
           SELECT SALES-FILE ASSIGN TO "sales.dat"
               ORGANIZATION IS LINE SEQUENTIAL.
  • SELECT SALES-FILE: определяет логическое имя, которое программа будет использовать для ссылки на файл.
  • ASSIGN TO "sales.dat": указывает фактическое имя физического файла (или путь) на диске.
  • ORGANIZATION IS LINE SEQUENTIAL (необязательно): указывает, что файл представляет собой обычный текстовый файл, в котором каждая строка представляет запись (разделенную символами новой строки).

2. Декларация: РАЗДЕЛ ФАЙЛА и ФД.

После привязки файла в ENVIRONMENT DIVISION мы должны определить структуру его записей в DATA DIVISION. Для этого мы используем специальный раздел под названием FILE SECTION (который предшествует WORKING-STORAGE SECTION).

Каждый выбранный файл должен иметь запись FD (описание файла), которая объявляет структуру записи:

COBOL
       DATA DIVISION.
       FILE SECTION.
       FD SALES-FILE.
       01 SALES-RECORD.
           05 EMP-ID       PIC 9(5).
           05 EMP-NAME     PIC X(20).
           05 EMP-SALARY   PIC 9(6)V99.
  • FD SALES-FILE.: определяет описание файла для логического имени SALES-FILE. Обратите внимание, что оно заканчивается точкой.
  • 01 SALES-RECORD.: определяет структуру группы (запись), связанную с файлом. Каждая операция чтения/записи будет обмениваться данными, используя эту структуру памяти.

Попробуйте это

Упражнение#cobol.m5.l1.e1
Попыток: 0Загрузка…

Заполните раздел ENVIRONMENT DIVISION, чтобы объявить раздел INPUT-OUTPUT SECTION и параграф FILE-CONTROL, связав логический файл SALES-FILE с физическим файлом sales.dat с помощью оператора SELECT ASSIGN.

Загрузка редактора…
Показать подсказку

Напишите ОТДЕЛЕНИЕ ОКРУЖАЮЩЕЙ СРЕДЫ. и СЕКЦИЯ ВВОДА-ВЫВОДА. в столбце 8 (7 пробелов), затем ФАЙЛ-КОНТРОЛЬ. в столбце 8 и, наконец, ВЫБЕРИТЕ ФАЙЛ ПРОДАЖ, НАЗНАЧИТЬ 'sales.dat'. в графе 12 (11 пробелов).

Решение доступно после 3 попыток

Упражнение#cobol.m5.l1.e2
Попыток: 0Загрузка…

Объявите РАЗДЕЛ ДАННЫХ и РАЗДЕЛ ФАЙЛА для программы. Определите дескриптор файла (FD) для SALES-FILE, связав его с записью уровня 01 с именем SALES-RECORD, содержащей два подчиненных поля: SALES-ID (4-значное число) и SALES-AMOUNT (5-значное число с двумя неявными десятичными знаками).

Загрузка редактора…
Показать подсказку

Используйте РАЗДЕЛЕНИЕ ДАННЫХ. и РАЗДЕЛ ФАЙЛА. в столбце 8 ФАЙЛ ПРОДАЖ ФД. в столбце 8, за которым следует 01 ПРОДАЖА-ЗАПИСЬ. в столбце 8 и полях 05 SALES-ID PIC 9(4). и 05 ОБЪЕМ ПРОДАЖИ, РИСУНОК 9(5)V99. в столбце 12 на новых строках.

Решение доступно после 3 попыток