Тема 2. Опрацювання даних файлового типу.

Питання теми та основні терміни.

Поняття файлового типу.

Типізовані файли.

Текстові файли.

Нетипізовані файли.

Файл, дисковий файл, логічний пристрій, файл прямого доступу, файл послідовного доступу, типізований файл, нетипізований файл, відкриття файлу, закриття файлу.

Інформаційні матеріали теми

1. Поняття файлового типу.

Файли забезпечують програмі канали, по яких можна виконувати передачу даних. Під файлом можна розуміти:

· дисковий файл – це файл, який зберігається  на диску, і в цьому випадку дані зчитуються або записуються на який-небудь магнітний носій;

· логічний пристрій, такий, наприклад, як попередньо визначені в системі файли INPUT або OUTPUT, що звертаються до стандартних каналів вводу/виводу в ЕОМ. У ролі логічних пристроїв можуть виступати також клавіатура або екран термінала: друкуючий пристрій;

· структуру даних.

Далі файли будуть розглядатись саме як структура даних.

Для роботи з файлами вводяться так звані файлові змінні, які являють собою послідовність компонентів певного типу. Кількість компонентів у файлі (розмір файла) при цьому не визначається. Замість цього система мови ПАСКАЛЬ зберігає слід файла, доступ до якого можна одержати через покажчик файла .

За формою доступу до компонентів розрізняють файли прямого доступу і файли послідовного доступу. Для файлів послідовного доступу характерним є те, що його компоненти можуть опрацьовуватись лише в природному порядку (тобто порядку їх слідування). Щораз, коли якийсь компонент записується у файл або зчитується на нього, покажчик файла по закінченні цієї операції переміщується до наступного компонента. Як правило, такий фал припускає або читання даних або їх запис. Одночасно обидві операції не проводяться.

Для файлів прямого доступу існує можливість доступу до довільного компонента. Оскільки всі компоненти файла мають однакову довжину, положення будь-якого визначеного компонента легко можна обчислити. Такий файл допускає одночасно і читання , і запис даних.

За специфікою файли поділяються на типізовані, нетипізовані та текстові.

Типізований файл являє собою послідовність елементів певного типу. Цими елементами можуть виступати рядки певної довжини, числа, записи.

Нетипізований файл являє собою сукупність символів або байт. Така структура дозволяє розглядати всі дискові файли однаково незалежно від їх реального вмісту.

Текстовий файл являє собою послідовність рядкових величин змінної довжини.

Опрацювання будь-якого файлу складається з трьох етапів:

· зв’язування файлової змінної з дисковим файлом та відкриття файлу, яке полягає у підготовці файлу до опрацювання;

· власне обробка файлу( тобто, обробка його компонент);

· закриття файлу.

Як вже зазначалось раніше, всі дані зберігаються на зовнішніх носіях у вигляді дискових файлів. Тому при опрацюванні файлових структур даних потрібно спочатку зв’язати файлову змінну з конкретним дисковим файлом. Власне, для цього і використовується файлова структура – щоб одержати доступ до фізичних даних на дискові. Для цього призначена стандартна процедура assign. Вона встановлює відповідність між файловою змінною та дисковим файлом. Синтаксис процедури:

assign(f, st);

де f – ім’я файлової змінної;

st – рядкова величина, яка задає повне ім’я дискового файлу.

Ця процедура повинна передувати всім іншим процедурам роботи з файлами. Крім того, не допускається використовувати процедуру для вже відкритого файлу (тобто, який в даний момент опрацьовується).

Відкриття файлу можна здійснити однією з двох процедур: rewrite  та reset .

Процедура rewrite  призначена для створення нового файлу. Якщо файл (дисковий) вже існує, то він руйнується, і його створення починається з першої компоненти. Файл, відкритий такою процедурою, допускає лише операції запису даних до нього. Синтаксис процедури:

rewrite(f),

де f – ім’я файлової змінної.

Процедура reset призначена для відкриття існуючого файлу.  В цьому режимі з типізованого файлу можна як читати дані, так і записувати дані до файлу. Синтаксис процедури:

reset(f),

де f – ім’я файлової змінної.

Якщо відповідного дискового  файлу не існує, виникає помилка.

Приклад:

assign(p,’c:\users\mydata.dat’);

assign(t,’c:\list.txt’);

assign(g,’document.doc’);

reset(p);

rewrite(t);

reset(g,16000);

Процедура close призначена для закриття файлу. При цьому файл стає недоступний для обробки, але його можна відкрити ще раз за допомогою розглянутих вище процедур. Формат процедури має такий вид:

close(f)

де f – ім’я файлової змінної.

Якщо дана процедура відсутня в програмі, то після її завершення Паскаль автоматично закриє всі відкриті файли.

Обробка компонент файлу залежить від завдання, що розв’язується. Основними при цьому є операції читання даних з файлу та запису даних у файл.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 
25 26 27 28  Наверх ↑