Модульні уроки (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. Оголошення: ФАЙЛОВИЙ РОЗДІЛ і FD
Після пов’язування файлу в 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.: визначає групову структуру (запис), пов’язану з файлом. Кожна операція читання/запису обмінюватиметься даними за допомогою цієї структури пам’яті.
Спробуйте це
Завершіть РОЗДІЛ СЕРЕДОВИЩА, щоб оголосити РОЗДІЛ ВХОДУ-ВИВЕДЕННЯ та абзац FILE-CONTROL, пов’язавши логічний файл SALES-FILE з фізичним файлом «sales.dat» за допомогою оператора SELECT ASSIGN.
Показати підказку
Напишіть ВІДДІЛ ДОВКІЛЛЯ. і РОЗДІЛ ВВЕДЕННЯ-ВИВЕДЕННЯ. у графі 8 (7 пробілів), потім FILE-CONTROL. у стовпці 8 і, нарешті, SELECT SALES-FILE ASSIGN TO 'sales.dat'. у графі 12 (11 інтервалів).
Рішення доступне після 3 спроб
Оголошіть DATA DIVISION і FILE SECTION для програми. Визначте дескриптор файлу (FD) для SALES-FILE, пов’язавши його із записом рівня 01 під назвою SALES-RECORD, який містить два підлеглих поля: SALES-ID (4-значне число) і SALES-AMOUNT (5-значне число з 2 неявними десятковими знаками).
Показати підказку
Використовуйте DATA DIVISION. і ФАЙЛОВИЙ РОЗДІЛ. у графі 8 ФД ПРОДАЖ-ФАЙЛ. у графі 8, далі 01 ЗАПИС ПРОДАЖ. у колонці 8, а поля 05 SALES-ID PIC 9(4). та 05 СУМА ПРОДАЖІВ PIC 9(5)V99. у графі 12 новими рядками.
Рішення доступне після 3 спроб