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

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

Паскаль имеет средства взаимодействия с файлами несколько иной структуры - текстовыми файлами. Структура текстовых файлов отличается от структуры обычных файлов (линейная последовательность элементов одного типа) тем, что содержимое текстового файла рассматривается как последовательность символьных строк переменной длины, разделенных специальной комбинацией, называемой 'конец строки', 'перевод каретки' (#B), за которым возможно следует перевод строки (#10). Текстовый файл завершает специальный символ (#26).

Текстовый файл объявляется так:

Var

TextInf : text;

Для текстовых файлов применимы те же самые операции инициализации, открытия и закрытия, что и для обычных файлов. За исключением того, что reset открывает файл только для чтения, rewrite - для его обновления.

Дополнительно для текстовых файлов определены следующие операции:

  • Append - один параметр - файловая переменная. Аналогична rewrite, но не очищает файл, а добавляет новые строки в конец уже существующего файла.

  • SetTextBuf - процедура, определяющая буфер для обмена с текстовым файлом.

  • SetTextBuf (var f: text; var Buf; Size :word);

Операции ввода - вывода это read, write. Здесь необходимо помнить, что текстовый файл по определению содержит символьную информацию, поэтому при записи значения других типов будут преобразовываться в символьное представление. Для текстовых файлов имеется две модификации - процедуры Readln, writeln. Выполняют те же действия, что и read, write, но после операции чтения и записи производится переход к следующей строке текстового файла.

Для текстовых файлов неприменима процедура seek ввиду произвольных длин строк. Для решения задач перехода используются функции SeekEoln и SeekEof - с файловой переменной.

  • SekEoln - производит поиск конца текущей строки и возвращает true

  • SeekEof - осуществляет поиск конца файла, либо первого значащего символа. True - конец файла, false - в ином случае.

13.6 Файлы без типа.

Объявляются как:

Var

Data : file;

Понятие не типизированных файлов используется для организации доступа к любым дисковым файлам независимо от их структуры. При этом файл представляется как последовательность символов произвольного типа; единственное, что оговаривается - это размер элементов.

Не типизированные файлы открываются теми же процедурами, что и обычные текстовые файлы, - reset, rewrite, но для не типизированных файлов вторым параметром этих процедур должен быть задан размер записи.

Assign(data, 'Mydata.dta');

Reset (data, 200);

Размер записи задается в байтах.

Для организации обменов с не типизированными файлами предназначены две стандартные процедуры: BlockRead, BlockWrite.

В качестве рабочего буфера для обменов используется переменная, которую необходимо описать в программе и размер которой не должен быть меньше размера записи, установленной в параметрах reset, rewrite.

BlockRead (var f: file; var Buf; Count :word);

BlockRead (var f:file; var Buf; Count: word; var Result : word);

F - имя не типизированного файла, из которого производится чтение ;

Buf - переменная - буфер;

Count - число записей читаемых за один вызов;

Result - число фактически прочитанных записей.

Аналогично описывается стандартная процедура BlockWrite. В обеих процедурах нужно следить за тем, чтобы переменной буфера buf был равен RecSize* Count, где первое - это размер записи указанной в процедуре reset или rewrite и второе - число читаемых - записывающих записей.