Описание текстового файла
Описание типа текстового файла состоит из ключевого слова text. Примеры Type TextType = text; Var OutFile: TextType InpFile: text; Тип TextType связан с набором строк, разделённых на символы и заканчивающихся последовательностью CR/LF. OutFile и InpFile - имена текстовых файлов. В языке Турбо Паскаль связь с внешними устройствами: консолью, терминалом, принтером, модемом и т.д., осуществляется с помощью текстовых файлов. Таким образом, эти файлы являются моделью физического набора данных, доступных с помощью этих устройств. Для операций над текстовыми файлами, кроме перечисленных, определены также операторы обращения к процедурам: ReadLn (T) – пропускает строку до начала следующей; WriteLn (T) – завершает строку файла, в которую производится запись, признаком конца строки и переходит к началу следующей. Для работы с текстовыми файлами введена расширенная форма операторов ввода и вывода. Оператор Read(T,X1,X2,...XK) эквивалентен группе операторов begin Read(T,X1); Read(T,X2); Read(T,XK) end; Здесь Т – текстовый файл, а переменные Х1, Х2,...ХК могут быть либо переменными целого, действительного или символьного типа, либо строкой. При чтении значений переменных из файла они преобразуются из текстового представления в машинное. Оператор Write(T,X1,X2,...XK); эквивалентен группе операторов begin Write(T,X1); Write(T,X2); Write(T,XK) end; Здесь Т – также текстовый файл, но переменные Х1, Х2,..., ХК могут быть целого, действительного, символьного, логического типа или строкой. При записи значений переменных в файл они преобразуются из внутреннего представления в текстовый. К текстовым файлам относятся стандартные файлы INPUT, OUTPUT. Рассмотренные ранее операторы ввода – вывода являются частным случаем операторов обмена с текстовыми файлами, когда используются стандартные файлы ввода-вывода INPUT, OUTPUT. Работа с этими файлами имеет особенности: – имена этих файлов в списках ввода-вывода не указываются; – применение процедур Reset, Rewrite и Close к стандартным файлам ввода-вывода запрещено; – для работы с файлами INPUT, OUTPUT введена разновидность функции EOLn без параметров. – Турбо Паскаль вводит дополнительные процедуры и функции, применимые только к текстовым файлам, это SetTextBuf, Append, Flush, SeekEOLn, SeekEOF.
Процедура SetTextBuf (var f: Text; var Buf; BufSize: Word) служит для увеличения или уменьшения буфера ввода-вывода текстового файла f. Значение размера буфера для текстовых файлов по умолчанию равно 128 байтам. Увеличение размера буфера сокращает количество обращений к диску. Рекомендуется изменять размер буфера до открытия файла. Буфер файла начнется с первого байта переменной Buf. Размер буфера задается в необязательном параметре BufSize, а если этот параметр отсутствует, размер буфера определяется длиной переменной Buf. Процедура Append (var f: Text) служит для специального открытия выходных файлов. Она применима к уже существующим физическим файлам и открывает их для дозаписи в конец файла. Процедура Flush (var f: Text) применяется к открытым выходным файлам. Она принудительно записывает данные из буфера в файл независимо от степени его заполнения. Функция SeekEOLn (var f: Text): Boolean возвращает значение True, если до конца строки остались только пробелы.
|