Назад на содержание Работа с файлами в Pascal


Общая информация

Файловые процедуры и функции

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

Типизированные файлы

Нетипизированные файлы

Пример

Контрольные вопросы

Задания


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

    Особое место в языке ПАСКАЛЬ занимают текстовые файлы, компоненты которых имеют символьный тип.
    Для описания текстовых файлов в языке определен стандартный тип Т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 до конца файла остались строки, заполненные пробелами.

В начало
Hosted by uCoz