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

10 Файловый тип. Операции с файлами.

В Pascal существует 3 класса файлов:

  • Типизированные

  • Нетипизированные

  • Текстовые

Число компонент, называемое длинной файла, в определении файлового типа не фиксируются. Это особенность явно отличает понятие файла от понятия массива.

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

Структура текстовых файлов отличается от остальных тем, что содержимое текстового файла рассматривается как последовательность символьных строк переменной длины разделенной специальной комбинацией «конец строки» (#13 #10).

Текстовый файл завершается специальным кодом «конец файла».

Перед тем, как файловая переменная может быть использована она должна быть ассоциирована (связана) с внешним файлом при помощи процедуры Assign, который имеет два параметра – файловую переменную и строковую переменную, содержащую имя файла.

Assign (F, ‘d:\users\ei\file.dat’);

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

Существующий файл может быть открыт процедурой Reset, а новый файл может быть создан процедурой ReWrite. Если открыть существующий файл процедурой ReWrite, то его содержимое стирается. Текстовый файл, открытый процедурой Reset можно только читать, а открытый процедурой ReWrite и Append – только для записи. Append аналогично ReWrite, но устанавливает указатель файла в конец. Для остальных файлов разрешены чтение и запись независимо от того, какой процедурой они открыты.

Каждый из этих процедур имеет один параметр – файловую переменную, которая до того уже проассоциирована с внешним файлом.

Процедуры Read и Write могут вызываться с различным числом параметров, и эти параметры могут иметь различные типы.

Read предназначено для чтения из файла. Начиная с текущей позиции указателя файла последовательно читаются значения, содержащиеся в файле и каждое очередное прочитанное значение присваивается очередной переменной из тех, которые указаны в вызове процедур. После каждого акта чтения указатель файла смещается на следующую позицию.

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

Данная группа операций позволяет произвольно изменять порядок чтения и записи.

Seek – позволяет изменить положение текущего указателя, параметры: файловая переменная и порядковый номер элемента файла, на который надо установить указатель.

FileSize – общее число элементов файла.

FilePos – возвращает номер элемента, на котором установлен текущий указатель.

EOF – возвращает логическое значение, если достигнут конец файла.

Truncate – используется для отсечения от файла хвостовой части, начиная с позиции текущего указателя включительно.

Erase – стирает.

Rename – переименование файла.