- •Тема 5. Створення та оброблення файлів даних
- •Порядок виконання операцій при роботі з файлами
- •Процедури роботи з каталогами
- •Процедури перейменування і знищення файлів
- •Процедури і функції для роботи з файлами
- •Типовані файли
- •Процедури і функції для роботи з типованими файлами
- •Текстові файли
- •Процедури і функції для роботи з текстовими файлами
- •Нетиповані файли
- •Індивідуальні завдання Створення та оброблення типованих файлів
- •Створення та оброблення текстових файлів
Тема 5. Створення та оброблення файлів даних
Файл – це іменована область зовнішньої пам’яті , що містить однотипну інформацію.
Файл в такому розумінні називають фізичним файлом, тобто таким, що існує фізично на деякому носії інформації.
З іншого боку файл - це одна із багатьох структур даних, які використовуються у програмах. Файл в такому розумінні називається логічним файлом, тобто який існує тільки в логічному представленні при написанні програми. У програмах логічні файли представляються файловими змінними певного типу.
Структура фізичного файла являє собою послідовність байтів пам’яті носія інформації. Структури файлів бувають:
типовані (у двійковому вигляді)
текстові (у символьному)
нетиповані (копія оперативної пам’яті)
байт |
байт |
байт |
... |
байт |
байт |
байт |
Структура логічного файла – це засіб сприйняття файла у програмі, це шаблон, скрізь який сприймається фізична структура файла. У мовах програмування таким шаблонам відповідають типи даних, що використовуються у якості компоненту файлів.
File of byte
байт |
байт |
байт |
... |
байт |
Eof |
File of char
Код символу |
код символу |
код символу |
... |
код символу |
Eof |
File of integer
ціле із знаком |
ціле із знаком |
ціле із знаком |
... |
ціле із знаком |
Eof |
File of T T=record
a : byte;
b: char;
c: integer
end;
Байт |
код символу |
ціле із знаком |
... |
байт |
код символу |
ціле із знаком |
Eof |
Логічна структура файла схожа на структуру масиву. Різниця між масивом і файлом полягає у наступному:
у масивах кількість елементів фіксується в момент розподілення пам’яті і він повністю розміщується у оперативній пам’яті. Нумерація елементів масиву виконується відповідно нижній та верхній межам, вказаним при його оголошенні;
у файла кількість елементів в процесі роботи програми може змінюватися і він розміщується на зовнішніх носіях інформації. Нумерація елементів файла виконується зліва направо, починаючи з нуля (крім текстових файлів). Кількість елементів файла у кожний момент часу невідома. Але відомо, що в кінці файла розміщується спеціальний символ кінця файла EOF, в якості якого використовується керуючий символ з кодом. Крім того, визначити довжину файла і виконати інші операції можна з допомогою стандартних процедур і функцій, призначених для роботи з файлами.
Файли класифікуються за двома ознаками:
за типом (логічною структурою);
за методом доступу до елементів файла.
Файл містить компоненти одного типу, типи можуть бути будь-якими, окрім файлового. Файловий тип або змінну файлового типу можна задати одним із трьох способів:
<ім’я>= FILE OF <тип>;
<ім’я>=TEXT;
<ім’я>=FILE;
тут <ім’я>-це ім’я файлового типу;
FILE, OF - зарезервовані слова;
TEXT – ім’я стандартного типу текстових файлів;
<тип>-будь-який тип, окрім файлового.
Приклад:
Type
Product=record
Name:string;
Code:word;
Cost:comp
End;
Text8=file of string[80];
Var
F1:file of char;
F2: text;
F3:file;
F4:text8;
F5:file of product;
В залежності від способу оголошення можна виділити три види файлів:
типовані файли, що задаються параметром file of;
текстові файли, які визначаються типом text;
нетиповані файли, що визначаються типом file.
У попередньому прикладі F1, F4 та F5-типовані файли, F2-текстовий файл, F3-нетипований файл.
За способом доступу до елементів розрізняють файли послідовного і прямого доступу. Файлом послідовного доступу називається файл, до елементів якого забезпечується доступ у такій послідовності, у якій вони записувалися. Файлом прямого доступу називається файл, доступ до елементів якого здійснюється за адресою елемента. Наприклад, для пошуку потрібного елемента у послідовному файлі необхідно, починаючи із нульового, переміщувати вказівник обробки доти, доки він не буде вказувати на шуканий елемент, а при пошуку потрібного елемента у файлі прямого доступу достатньо вказати номер його позиції. При організації даних у файл послідовного доступу неможна одночасно читати дані з файла і записувати дані у файл, бо для читання деякого елемента послідовного файла вказівник обробки вказує на даний елемент, а для запису нового елемента цей вказівник одночасно повинен бути в кінці файла.