список змінних);
Writeln (назва файлової змінної, список змінних).
Відмінності текстового файлу від File of Char:
Автоматичне перетворення числових даних в ланцюжок символів під час запису значень у файл, та зворотне перетворення символів, що є числами, в числове значення під час виконання операції читання в змінні відповідних числових типів.
Текстові файли не мають прямого доступу, тобто до елементів можливий тільки послідовний доступ, починаючи з першого.
Записування в текстовий файл та читання з текстового файлу дозволено для змінних тільки деяких стандартних типів (для Read, Readln – тільки цілий, дійсний, символьний і строковий типи; для Write, Writeln -- тільки цілий, дійсний, символьний, строковий і булевський, або логічний, типи).
Наявність ознаки кінця рядку.
Для читання з текстових файлів і запису в них дозволено використання процедур Readln і Writeln, які не припустимі для інших типів файлів [2].
Процедури та функції для роботи з текстовими файлами
Для текстових файлів додатково до загальних призначені наступні процедури та функції:
Append -- відкриває існуючий файл для того, щоб добавити елементи в кінець файлу (див. розділ 3.1.2).
Flush -- скидає для текстового файлу буфер виведення (див. розділ 3.5).
Readln -- працює так як Read, але додатково виконує пропуск всіх елементів поточного рядку, що залишились, та переводить покажчик поточної позиції файлу на початок наступного рядку текстового файлу (див. розділ 4.2).
SeekEof -- повертає для текстового файлу стан Eof (кінець файлу).
SeekEoln -- повертає для текстового файлу стан Eoln. (кінець рядку).
SetTextBuf -- призначає для текстового файлу буфер введення - виведення.
Writeln -- працює так як Write, але після запису вказаних в процедурі значень, додатково записує в текстовий файл ознаку кінця рядку Eoln. (див. розділ 4.2) [2].
4.3 Нетипізовані файли
Для більш ефективного виконання операцій введення/виведення із зовнішніх файлів в мові Паскаль існують нетипізовані файли. Нетипізовані файли дають можливість прямого доступу до будь-якого файлу на диску незалежно від його типу і структури.
При оголошенні нетипізованого файлу вказується тільки ключове слово file, наприклад:
Var F: file;
Така файлова змінна зв’язується із зовнішнім файлом звичайним чином. Серед параметрів процедур Reset і Rewrite для нетипізованих файлів, крім файлової змінної, є необов’язковий другий параметр типу Word:
Reset (untypfile, n);
Rewrite (untypfile, n);
Додатковий параметр n описує розмір індивідуального запису в файлі (в байтах). Якщо параметр n відсутній, його значення за умовчанням приймається рівним 128, однак рекомендується вказувати значення 1. Це пов’язане з тим, що при будь-якому значенні величини запису в файлі остання запис може виявитись неповною, а це не завжди зручно (останні байти файлу можуть бути не прочитаними) [7].
Для маніпулювання нетипізованими файлами придатні тіх процедури, що і для типізованих, за виключенням Read і Write. Для обміну даними з нетипізованими файлами використовуються спеціальні процедури: BlockRead і BlockWrite.
Процедура BlockRead прочитує із файлу вказану кількість записів; файл, із якого відбувається читання, попередньо повинен бути відкритим:
BlockRead (f, buf, count, result);
де f – нетипізована файлова змінна (типу file);
buf – змінна, яка була оголошена раніше в програмі і використовується як робочий буфер;
count – вираз або значення (типу word), яке відповідає кількості записів, котрі слід прочитати із файлу;
result – значення (типу word), яке повертається процедурою і відповідає кількості прочитаних записів. (Необов’язковий параметр.)
По закінченню дії процедури BlockRead покажчик поточної позиції файлу переміщений на кількість записів, яка відповідає значенню параметра result.
Приклад застосування процедури BlockRead – див. в додатку 3.
Процедура BlockWrite добавляє до файлу один або кілька записів; файл, до якого відбувається запис, попередньо повинен бути відкритим:
BlockWrite (f, buf, count, result);
де f – нетипізована файлова змінна (типу file);
buf – змінна, яка була оголошена раніше в програмі і використовується як робочий буфер;
count – вираз або значення (типу word), яке відповідає кількості записів, котрі слід добавити до файлу;
result – значення (типу word), яке повертається процедурою і відповідає кількості доданих записів. (Необов’язковий параметр.) [1]
Приклад застосування процедури BlockWrite – див. в додатку 3.
Додаток