Для того, щоб файлові операції виконувалися чітко і без помилок, необхідно використовувати спеціальну функцію Ioresult. Функція працює без параметрів і повертає значення цілого типу, що представляє статус останньої виконаної операції введення-виведення. Використання цієї функції в програмах можливо тільки у випадку, якщо на час виконання файлових операцій відключена стандартна перевірка операцій введення-виведення. З цією метою використовується спеціальна директива, що задається усередині тексту програми, {$I}. Після коректного виконання операції введення-виведення функція IOResult повертає порожнє слово, в інших випадках функціях повертає відповідний код помилки.
Для організації текстового файла необхідно насамперед оголосити відповідну файлову змінну текстового типу
Var
f:text;
Відкриття текстового файла здійснюється так:
Ø ставиться у відповідність файловій змінній ім'я файлу (процедура Assign) і відкривається новий текстовий файл (процедура Rewrite),
Ø ставиться у відповідність файловій змінній ім'я файлу (процедура Assign) і відкривається вже існуючий файл (процедура Reset).
Якщо треба дописати в існуючий текстовий файл інформацію, є також процедура відкриття файлу:
Append(Var f:text);
Вона відкриває вже існуючий файл і встановлює покажчик обробки на кінець файлу. Після такого відкриття текстовий файл можна доповнювати інформацією, починаючи з кінця рядка. Обмеження, що накладаються на процедуру Append такі ж, як у процедур Reset та Rewrite.
Для обробки текстових файлів використовуються процедури Read і Write, що забезпечують відповідно читання і запис однієї і більше величин у текстовий файл.
Виклик Read(f,ww),
де ww – змінна типу word, здійснює читання з файлу f послідовності цифр, що потім інтерпретується в число, значення котрого і буде привласнено змінній ww. У випадку, якщо замість послідовності цифр йде будь-яка інша послідовність символів, використання такого оператора приводить до помилки виконання програми.
Використання спеціальних роздільників рядків файлу дозволило ввести до складу мовних засобів процедури
Ø Readln, що забезпечує тієї ж дії, що і Read, і додатково – читання до маркера кінця рядка і перехід до нового рядка;
Ø Writeln, що забезпечує запис усіх величин з обов'язковою установкою маркера кінця рядка у файл. Формат цих процедур такий:
Readln(Var f:text; V1[,V2,...Vn]);
Writeln(Var f:text; V1[,V2,...Vn]);
де V1...Vn змінні різних типів.
Для організації операцій введення-виведення використовуються наступні мовні засоби:
Ø функція Eoln(f:text) повертає булівське значення True, якщо поточна файлова позиція знаходиться на маркері кінця рядка або виклик Eof(f) повернув значення True. В всіх інших випадках значення функції буде False;
Ø функція Eof(f:text) повертає булівське значення True, якщо покажчик кінця файлу знаходиться відразу за останнім компонентом, і False у противному випадку.
Завдання