По завершении обработки файла программой он должен закрываться. После закрытия файла связанный с ним внешний файл обновляется, а файловая переменная может быть связана с другим внешним файлом. Закрывается файл с помощью процедуры С1оsе (stopka).
Доступ к текстовому файлу организуется последовательно, то есть программа не может в любой момент времени считать из него произвольную порцию информацию или произвести запись в произвольное место файла. Файл представляет собой линейную последовательность элементов, каждый из которых имеет свой номер. Указатель при считывании очередного элемента файла перемещается к следующему элементу.
Для записи в текстовый файл или чтения из него можно использовать процедуры Write, Writeln, Read и Readln. В этом, случае в качестве первого параметра в этих процедурах указывается файловая переменная, например
read (stopka, a, x);
Здесь происходит присваивание переменным а и х значений двух очередных элементов из файла, связанного с файловой переменной stopka.
Текстовый файл может использоваться для хранения численных значений. При считывании значений или их записи в файл происходит автоматическое преобразование из числового формата в символьный, и наоборот.
Оператор вывода допускает описание формата вывода. Если а является выражением целого, булевого или сорокового типа, то оператор
Writeln (a:n);
означает запись значения переменной а в правые позиции поля размером в п позиций. Значение n может быть отрицательным. В этом случае значение записывается в левые n позиций.
Если а имеет вещественный тип, должны быть описаны два поля формата:
Writeln ( a:10:3 );
Такое обращение к процедуре вывода означает запись а в форме с фиксированной точкой, с тремя десятичными разрядами и выравниванием по правой границе поля размером 10 позиций.
В Паскале имеются две стандартных файловых переменных текстового типа — Input и Output. Стандартная файловая переменная Input представляет собой доступный только для чтения файл, связанный со стандартным файлом ввода операционной системы, которым обычно является клавиатура. Вторая стандартная файловая переменная Output связана с доступным только для записи файлом стандартного устройства вывода (дисплей).
При обращениях к стандартным функциям и процедурам ввода/вывода автоматически производится проверка на наличие ошибок. При обнаружении ошибки программа прекращает работу и выводит на экран сообщение. С помощью директив компилятора {$I+} и {$I-} автоматическую проверку ошибок ввода/вывода можно включить или выключить. Если автоматическая проверка отключена, ошибки ввода/вывода, возникающие при работе программы, не приводят к ее останову. Стандартная функция IOResult возвращает код ошибки. Нулевое значение кода ошибки означает нормальное завершение операции вода/вывода.
В таблице приведены процедуры и функции для работы с файлами различных типов.
Пример. Автоматическое преобразование
Предположим, у нас есть текстовый файл, содержащий некоторую статистическую информацию. Эта информация собрана в группы, а каждая группа содержит десять вещественных чисел. Файл большой, насчитывает, возможно, несколько тысяч таких групп и должен обрабатываться много раз. Очень невыгодно хранить такой файл в текстовом виде, поскольку при чтении файла будут производиться тысячи преобразований. Гораздо лучше произвести одно преобразование всех чисел, а затем записать их в другой файл в двоичном виде, более подходящем для дальнейшей работы. Программа convertgroupчитает текст из filedataи пишет данные в двоичном виде в binfile. Компонента этого последнего файла представляет собой массив из десяти вещественных чисел. Преобразование неявно выполняется при вызове процедуры,
read (filedata, binfile [ind])
которая читает одно число, записанное с помощью символов, преобразует его во внутреннее представление для вещественных чисел и результат записывает непосредственно в компоненту binfile.
program convertgroup (filedata, binfile, output);
const
sizegroup = 0;
type
index = 1 .. sizegroup;
group = array [index] of real;
var
filedata : text;
binfile : file of group;
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.