logo search
методичка_1_05_ВНУ

Файлові типи Організація файлів

Характерною особливістю всіх розглянутих типів є наяв­ність у них скінченної, наперед визначеної кількості компонен­тів. Для масивів вона залежить від максимального значення кожного індексу, для записів - від кількості полів запису та їхнього типу. Якщо кількість компонентів певного типу відома, то програма, що використовує дані, має змогу зарезервувати потрібний обсяг пам'яті ще перед виконанням програми - щоб зберігати ці дані.

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

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

Файловий тип - це єдиний засіб зв 'язку програми із зовніш­нім середовищем. Тільки через файли в мові Паскаль можна передавати в програму вхідні дані й одержувати з програми результати.

Робота з файлами

Загальний вигляд опису файлового типу такий:

<Ім'я типу>=file of <Тип_компонентів>;

Як тип компонентів може бути задания або ім'я будь-якого типу Паскаля, крім файлового або такого, що містить у собі файло­вий. Наприклад, не можна оголосити файловим типом набір даних, компонентами якого є записи, що містять одне або де­кілька полів файлового типу.

Приклад опису файлового типу такий:

type

vect=array [1..10] of char;

F=file of vect;

Тут F описаний як файл, компонентами якого є масиви десяти символів. Цей же файл можна ввести і в розділі опису змінних:

var

FL: file of vect;

у випадку, коли тип vect визначений. Якщо цей тип не визначе­ний, то

var

FL: file of array [1 ..10] of char;

За допомогою двох останніх описів уводять файлову змінну (коротше - файл) FL, компонентами якої є символьні 10-еле-ментні масиви.

Зазначимо, що Турбо Паскаль допускає використання так званих безтипових файлів, для яких тип компонентів не ви­значений (такі файли описані далі).

Із значеннями файлового типу не можна виконувати жод­них арифметичних чи логічних операцій, навіть присвоєння чи порівняння (на відміну від змінних комбінованого типу, з якими виконують операції присвоєння значень змінних одного і того ж комбінованого типу).

Над файлами передбачені тільки операції з компонентами файлів. Множина операцій визначена типом компонентів. Од­нак передбачено цілу низку операцій над файлами у вигляді стандартних процедур, зокрема у Турбо Паскалі.