Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции по информатике все.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
986.62 Кб
Скачать

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

Следующие процедуры и функции можно использовать с файлами любого вида. Процедура CLOSE Закрывает файл, однако связь файловой переменной с именем файла, установленная ранее процедурой ASSIGN, сохраняется. Формат обращения:

CLOSE (<ф. п.>)

При создании нового или расширении старого файла процедура обеспечивает сохранение в файле всех новых записей и регистрацию файла в каталоге. Процедура RENAME Переименовывает файл. Формат обращения:

RENAME (<ф. п.>, <новое_имя>)

Здесь <новое_имя> - строковое выражение, содержащее новое имя файла. Перед выполнением процедуры необходимо закрыть файл, если он ранее был открыт процедурами RESET, REWRITE или APPEND. Процедура ERASE Уничтожает файл. Формат обращения:

ERASE (<ф. п.>)

Перед выполнением процедуры необходимо закрыть файл, если он ранее был открыт процедурами RESET, REWRITE или APPEND. Процедура FLUSH Очищает внутренний буфер файла, таким образом, гарантирует сохранность всех последних изменений файла на диске. Формат обращения:

FLUSH (<ф. п.>)

В ходе выполнения процедуры FLUSH все новые записи будут действительно записаны на диск. Процедура игнорируется, если файл был инициирован для чтения процедурой RESET. Функция EOF (<ф. п.>) : boolean Логическая функция, тестирующая конец файла. Возвращае TRUE, если файловый указатель стоит в конце файла. При записи это означает, что очередной компонент будет добавлен в конец файла, при чтении - что файл исчерпан. Процедура CHDIR Изменение текущего каталога. Формат обращения:

CHDIR (<путь>)

Здесь <путь> - строковое выражение, содержащее путь к устанавливаемому по умолчанию каталогу. Процедура GETDIR Позволяет определить имя текущего каталога (каталога по умолчанию). Формат обращения:

GETDIR (<устройство>, <каталог>)

Здесь <устройство> - выражение типа WORD, содержащее номер устройства: 0 - устройство по умолчанию, 1 - диск А, 2 - диск В и т.д. Процедура MKDIR Создает новый каталог на указанном диске.Формат обращения:

MKDIR(<каталог>)

Здесь <каталог> - выражение типа STRING, задающее путь к каталогу. Последним именем в пути, т. е. именем вновь создаваемого не может быть имя уже существующего каталога. Процедура RMDIR Удаляет каталог.Формат обращения:

RMDIR(<каталог>)

Удаляемый каталог должен быть пустым, т. е. не содержать файлов или имен каталогов нижнего уровня. Функция IORESULT : word Возвращает условный признак последней операции ввода-вывода. Если операция завершилась успешно, функция возвращает ноль. В противном случае - код ошибочной операции. ФункцияFSEARCH: PATHSTR Ищет файл в списке каталогов. Формат вызова:

FSEARCH(<имя> < список каталогов>)

Здесь <имя> - имя отсыкиваемого файла (строковое выражение или переменная типа PATHSTR; имени может предшествовать путь); <список каталогов> - список каталогов, в которых отыскивается файл (строковое выражение или переменная типа STRING); имена каталогов разделяются точкой с запятой.

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

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