Перейти до основного вмісту
Модуль 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. Оголошення: ФАЙЛОВИЙ РОЗДІЛ і FD

Після пов’язування файлу в 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Завантаження…

Завершіть РОЗДІЛ СЕРЕДОВИЩА, щоб оголосити РОЗДІЛ ВХОДУ-ВИВЕДЕННЯ та абзац FILE-CONTROL, пов’язавши логічний файл SALES-FILE з фізичним файлом «sales.dat» за допомогою оператора SELECT ASSIGN.

Завантаження редактора…
Показати підказку

Напишіть ВІДДІЛ ДОВКІЛЛЯ. і РОЗДІЛ ВВЕДЕННЯ-ВИВЕДЕННЯ. у графі 8 (7 пробілів), потім FILE-CONTROL. у стовпці 8 і, нарешті, SELECT SALES-FILE ASSIGN TO 'sales.dat'. у графі 12 (11 інтервалів).

Рішення доступне після 3 спроб

вправи#cobol.m5.l1.e2
Спроби: 0Завантаження…

Оголошіть 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 спроб