
Л.В.Рибакова Модуль 4 Лабораторна робота 16
ЛАБОРАТОРНА РОБОТА №16
Тема: ФАЙЛИ.
МЕТА: Навчитись писати програмні модулі для створення файла з типом на магнітному диску та занесення даних до цього файла, а також складати програмні модулі для обробки даних, прочитаних з типізованого файлу за індивідуальними завданнями
ТЕОРЕТИЧНІ ВІДОМОСТІ.
Програма, написана на мові PASCAL, повинна якимось чином обмінюватися із зовнішніми пристроями (отримувати данні з магнітного диску, записувати отримані результати на диск, тощо) для роботи з зовнішніми пристроями використовуються файли.
Файл - це набір однотипових даних на магнітному диску, який має ім'я
.
ОБ’ЯВА ФАЙЛУ З ТИПОМ
Опис файлового типу складається з ключового слова FILE, за яким іде ключове слово OF, а потім - опис типу елементів файлу.
Элементами файла можуть бути об’єкти будь-яких відомих типів, за винятком файла.
Наприклад:
Опис файлу, який складається з елементів записного типу:
1. Спочатку описуємо файловий тип:
<ім’я типу> = FILE OF RECORD
<поле>:<тип>;
...
<поле>:<тип>;
END;
2. Потім опишемо змінну для доступу до файлу:
<Ім’я1>: FILE OF <ім’я типу>;
3. І накінець опишемо змінну для доступу до запису:
<ім’я2>: <ім’я типу>;
Приклад опису файла
Для прикладу опишемо файл, який складається із відомих вам записів, які вміщують інформацію про студента:
Номер по списку,
Прізвище, ініціали,
місце проживання.
TYPE
INFORM = RECORD
Num: byte; {номер студента}
FIO: string [20]; {Прізвище та ініціали}
Adr: string[20]; {домашня адреса}
END;
VAR
FV: FILE OF INFORM; {змінна для доступу до файлу}
RV: INFORM; {змінна для доступу до запису}
З цього моменту, всі дії з файлом – створення, корегування, знищення - будуть виконуватись за допомогою змінної FV.
Дії з записом - читання запису з диску, зміна значень полів, записування запису на диск - призводяться за допомогою змінної RV.
Створення файла
Перед тим, як щось робити з даними файла, його треба створити. Алгоритм створення досить простий:
привласнити файлу ім'я;
відкрити файл як новий;
увести дані з клавіатури;
записати їх у файл;
закрити файл.
Для всіх цих операцій існують спеціальні процедури:
Assign(FV,'<ім'я>') - привласнити файлу, визначеному FV ім'я 'ім'я'.
Ця пpоцедуpа встановлює зв'язок між конкpетним фізичним файлом на диску і змінною файлового типу, яка буде пpедставником цього файла в пpогpамі. Ця пpоцедуpа має два паpаметpа:
FV - відома файлова змінна;
<ім'я> - повинно складатися не більш ніж з 8 символів+3 символ на розширення.
Наприклад: Assign(FV,'VOVA.DOC'); ASSIGN(FV,'d:/TP70/DAT/OCEN.DAT');
Rewrite(FV)- відчинити поки ще не існуючий (новий) файл.
Reset(FV) - відчинити вже існуючий на диску файл.
Write(FV,RV) - записати запис, визначений RV у файл FV.
Close(FV) - закрити файл.
Erase(FV) - знищити файл FV на диску.
От і всі стандартні процедури для створення файла, що вам треба знати.
Приклад створення файла
Створюємо файл даних про студентів гpупи на основі відомого запису типу INFORM. Умовимося, що у файлі не може бути більш 55 записів. Якщо введений номер студента = 55, то це буде служити ознакою закінчення введння даних у файл.
PROGRAM CREATION_INFO_SYSTEM; - заголовок
Uses CRT; - підключення CRT
TYPE INFORM = RECORD - опис типу
Num : byte; - номер
FIO : string[20]; - ім'я
Adr : string[20]; - адреса
END; - кінець запису
VAR - роздів описів
FV : FILE OF INFORM; - змінна для файла
RV : INFORM; - змінна для запису
BEGIN - розділ операторів
Assign(FV,'INFORM. DOC') - привласнимо файлу ім'я
Rewrite(FV); - відкриття як нового
WHILE True DO BEGIN - введення в циклі WHILE
Write('Номер:'); Readln(RV. Num); - запит-введення
IF RV. Number=55 THEN BEGIN Close(FV);Halt;END; - перевірка на вихід
Write('Ф. И.О.:');Readln(RV. FIO); - запит-запровадження
Write('Адреса:'); Readln(RV. Adr); - запит-введення
Write(FV,RV); - запис у файл
END; - кінець WHILE
END. - кінець програми