Наприклад, за допомогою команди присвоєння не вдасться присвоїти файловій змінній деяке значення. Тому відповідні операції реалізовані у вигляді процедур та функцій. Файлові процедури та функції умовно можна поділити на п’ять груп:
організуючі доступ до файлів,
здійснюючі введення – виведення,
призначені для орієнтування в файлі,
спеціальні операції,
завершальні операції.
Розглянемо процедури та функції, які відносяться до кожної з цих груп [1].
3.1 Організація доступу до файлів
3.1.1 Файлові змінні та реальні файли. Процедура Assign
Для роботи з фізичним файлом (тим, що знаходиться на зовнішньому носії інформації), необхідно перш за все зв’язати його з файловою змінною (логічним файлом), з допомогою якої буде здійснюватися доступ до цього фізичного файлу. Зв’язок задають процедурою Assign, яка може бути використана тільки для закритого файлу.
Процедура Assign:
Assign ( назва файлової змінної, назва файлу на диску )
До виконання над файлом якихось дій завжди необхідно звернутися до цієї процедури. Після виклику процедури Assign зв’язок між вказаними файлом та файловою змінною існує до завершення роботи програми або доки до цієї файлової змінної не буде знову застосована процедура Assign. [1]
Приклад застосування процедури Assign – див. в додатку 1.
3.1.2 Відкриття файлу
Відкрити файл в Turbo Pascal можна для читання, для запису, а також для читання і запису одночасно. До відкриття файл повинен бути зв'язаний (за допомогою процедури Assign) з раніше оголошеною файловою змінною. При відкритті файлу шукається вже існуючий файл на диску або створюється новий (якщо файл відкривається для запису) і поточний покажчик встановлюється в початок файлу.
Для відкриття файлів призначені процедури. Reset, Rewrite і Append. Причому, якщо процедури Reset, Rewrite підходять для відкриття файлу будь-якого вигляду, то за допомогою процедури Append можна відкрити тільки текстовий файл.
Процедурою Reset слід користуватися, якщо файл, що підлягає обробці, вже існує і дані, що зберігаються в ньому, не повинні бути втрачені. А процедуру Rewrite застосовують, якщо при відкритті файлу його вміст необхідно знищити, а на його місце записати новий [5].
Процедура Reset відкриває існуючий фізичний файл, який до цього був зв’язаний з файловою змінною f:
Reset ( f ) ;
Якщо f – текстовій файл, то він стане доступним тільки для читання при послідовному доступі до елементів, якщо f – типізований або не типізованій файл, то він стане доступним і для читання, і для запису. Покажчик поточної позиції при цьому буде встановленим на початку файлу.
Процедура Rewrite створює новий фізичний файл, ім'я якого буде зв’язано з файловою змінною f:
Rewrite ( f ) ;
Якщо такий фізичний файл вже існує, то він буде видалений, і на його місці утворюється новий порожній файл. При відкритті покажчик поточної позиції буде встановленим на початку файлу.
Процедура Append відкриває тільки текстові файли:
Append ( f ) ;
Ця процедура призначена для додавання інформації до вже існуючого файлу – вона відкриває файл та встановлює покажчик в його кінець. Якщо процедуру Append застосувати до відкритого (з допомогою процедури Reset або Rewrite) файлу, файл закриється, а потім знову відкриється (тільки для запису) з покажчиком, встановленим в кінці файлу. [1]
Приклад застосування процедур Reset , Rewrite – див. в додатку 1.
3.2 Введення – виведення
Для здійснення введення інформації в файл та виведення з файлу в Turbo Pascal для текстових і типізованих файлів призначені процедури Read и Write, а для нетипізованих -- BlockRead і BlockWrite. При цьому використання процедур Read и Write має особливості, які залежать від виду файла (текстовий це файл або типізований). Тому відомості про ці процедури розміщено в розділах, присвячених відповідним видам файлів.
Приклад застосування процедур Read и Write – див. в додатку 1.
Крім Read и Write, для текстових файлів можна застосувати процедури Readln и Writeln (див. розділ про текстові файли).
Крім процедур введення – виведення, є функція, яка здійснює контроль за введенням – виведенням – це функція IOResult.
Функція IOResult повертає код помилки, яка виникає при виконанні останньої операції введення – виведення:
IOResult ( і ) ;
де і – змінна типу integer.
Якщо помилки не було, функція повертає нуль.
Для того, щоб контролювати помилки введення – виведення з допомогою функції IOResult, повинен бути виключеним автоконтроль (директива компілятора {$I-}). [1]
3.3 Орієнтування в файлі
До цієї категорії відносять процедури та функції, які дозволяють визначити або змінити положення покажчика поточної позиції в файлі. Розглянемо дві процедури (Seek i Truncate ) та три функції (FileSize, FilePos, EoF i EoLn).
Процедура Seek позиціонує покажчик на деякий певний елемент у файлі, файл при цьому повинен бути відкритим:
Seek ( f, n );
де f – файлова змінна будь-якого типу, крім text;
n – номер елементу в файлі (типу longint).
Наприклад, для того, щоб перемістити покажчик к третьому елементу файла, процедуру Seek слід застосувати так:
Seek ( f, 3 );
Приклад застосування процедури Seek – див. в додатку 2.
Процедура Truncate видаляє зміст файла (який повинен бути відкритим) від поточної позиції і до кінця:
Truncate ( f );
де f – файлова змінна будь-якого типу, крім text.
Приклад застосування процедури Truncate – див. в додатку 1.
Функція FileSize повертає значення (типу longint), яке відповідає поточній довжині файла (тобто кількості елементів, що містяться в файлі, рахуючи від одиниці!):
FileSize ( f );
де f – файлова змінна будь-якого типу, крім text.
Приклад застосування функції FileSize – див. в додатку 2.
Функція FilePos повертає значення (типу longint), яке відповідає положенню покажчика поточної позиції в файлі (позиції нумеруються від нуля!):
FilePos ( f );
де f – файлова змінна