31. Текстовые файлы

 Особое место в языке ПАСКАЛЬ занимают текстовые файлы, компоненты

которых имеют символьный тип. Для описания текстовых файлов в  языке

определен стандартный тип Тext:

 

 var TF1, TF2: Text;

 

 Текстовые файлы представляют собой последовательность строк, а

строки - последовательность символов.  Строки имеют переменную длину,

каждая строка завершается признаком конца строки.

 С признаком конца строки связана функция EOLn(var T:Text):Boolean,

где Т - имя текстового файла. Эта функция принимает значение TRUE,

если достигнут конец строки, и значение  FALSE, если конец строки не

достигнут.

 Для операций над текстовыми файлами, кроме перечисленных, опреде-

лены также операторы обращения к процедурам:

 

 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 без параметров.

 TURBO PASCAL вводит дополнительные процедуры и функции, применимые

только к текстовым файлам,  это 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,

если до конца строки остались только пробелы.

 Функция SeekEOF( var f: Text ): Boolean возвращает значение True,

если до конца файла остались строки, заполненные пробелами.

Электротехника курсовые, лабораторные, практика Математика, физика