Уроки модуля (1/2)
Определение файла и управление файлами
В COBOL управление внешними файлами (такими как текстовые архивы или двоичные записи на диске) является одной из наиболее важных функций пакетных корпоративных приложений. Поскольку COBOL был разработан задолго до появления современных баз данных, в качестве основного хранилища выступают дисковые файлы.
Соединение физических файлов, хранящихся в операционной системе, с внутренними переменными программы происходит в два этапа:
- Логико-физическая ассоциация в
ENVIRONMENT DIVISION. - Определение записи данных в
DATA DIVISION.
1. Ассоциация: FILE-CONTROL и SELECT ASSIGN.
В главе, посвященной структуре программы, мы рассмотрели ENVIRONMENT DIVISION. Внутри него INPUT-OUTPUT SECTION содержит абзац FILE-CONTROL, в котором объявляются внешние файлы, используемые программой.
Чтобы связать логический файл в программе (например, SALES-FILE) с реальным физическим файлом на диске (например, sales.dat), используйте оператор SELECT ... ASSIGN TO ...:
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 (описание файла), которая объявляет структуру записи:
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.: определяет структуру группы (запись), связанную с файлом. Каждая операция чтения/записи будет обмениваться данными, используя эту структуру памяти.
Попробуйте это
Заполните раздел ENVIRONMENT DIVISION, чтобы объявить раздел INPUT-OUTPUT SECTION и параграф FILE-CONTROL, связав логический файл SALES-FILE с физическим файлом sales.dat с помощью оператора SELECT ASSIGN.
Показать подсказку
Напишите ОТДЕЛЕНИЕ ОКРУЖАЮЩЕЙ СРЕДЫ. и СЕКЦИЯ ВВОДА-ВЫВОДА. в столбце 8 (7 пробелов), затем ФАЙЛ-КОНТРОЛЬ. в столбце 8 и, наконец, ВЫБЕРИТЕ ФАЙЛ ПРОДАЖ, НАЗНАЧИТЬ 'sales.dat'. в графе 12 (11 пробелов).
Решение доступно после 3 попыток
Объявите РАЗДЕЛ ДАННЫХ и РАЗДЕЛ ФАЙЛА для программы. Определите дескриптор файла (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 попыток