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

Стандартні файли input і output

Стандартні файли input та output є текстовими. У програмі їх не описують. З ними не можна використовувати процедури reset та rewrite. Уважають, що ці файли описані й на початку програми ці процедури виконані. Операційна система пов'язує файл input з пристроєм уведення (у режимі діалогу це клавіату­ра), а файл output - з пристроєм виведення (у режимі діалогу це екран дисплея).

У процесі читання з файлу input і записування у файл out­put імена цих файлів можна пропускати. Наприклад, еквіва­лентні такі записи:

read(x) і read(input.x); write(x) і write(output,x).

Те ж саме стосується і функцій Eoln і Eof:

Eoln і Eoln(input); Eof і Eof(output).

Для текстових файлів визначена стандартна функція page, яка виконує перехід на наступну сторінку під час виведення інформації на пристрій виведення.

Далі розглянемо використання стандартного текстового файлу output для виведення даних за допомогою стандартної процедури

write(x1,x2 хn),

яка еквівалентна

write(x1), write(x2),…,write(xn).

Послідовності символів, що виводяться у файл output, бу­дуть розділені на рядки по 80 символів у випадку виведення на екран дисплея.

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

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

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