Обробка даних файла
Коли файл створений, його дані стають доступні для опрацювання. Будь-яка робота з файлом описується таким алгоритмом:
привласнити файлу ім'я
відчинити вже існуючий файл
вважати запис
опрацювати значення поля
прочитати інший запис
опрацювати значення поля і т.д.
закрити файл
Для виконання перерахованих операцій використовуються такі процедуры:
Assign(FV,<ім'я>)- привласнити файлу ім'я .
Reset(FV) - відчинити вже існуючий на диску файл
Read(FV,RV) - прочитати запис
Close(FV) - закрити файл
Seek(FV,N) - підставити вказівник файлу під запис або прочитати запис номер N
FileSize(FV) - функція повертає кількість записів у файлі FV
EOF(FV) - функція, повертає значення True, якщо при читанні записів досяг-нутий кінець файла.
Приклад обробки файла
Як приклад доступу до файла й опрацювання записів вирішимо таку задачу:
виведемо на екран файл INFORM. DOC, створений нами раніше. Використовуємо
для цього оператор WHILE із перевіркою на кінець файла: WHILE not EOF(FV) DO :
поки не досягнутий кінець файла, роби... :
PROGRAM OUTPUT_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') - привласнимо файлу ім'я
Reset(FV); - відкриття файлу для читання
Writeln('Содержимое файла:'); - заголовок
WHILE not EOF(FV) DO BEGIN - цикл WHILE
Read(FV, RV); - запит-введення
Writeln(RV. Num:3,RV. FIO:20,RV. Adr:20); -виведення даних запису
END; - кінець WHILE
Close(FV); - закрити файл
End.
Розширення файла
Файл на диску можна корегувати, наприклад, розширювати за рахунок внесення нових записів, починаючи з кінця файла. Технологія розширення проста:
відчинити вже існуючий на диску файл;
за допомогою Seek підвести файловый покажчик за останній запис;
внести в циклі N новиx записів
закрити файл:
