Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
2011_12 Комп.Науки_2сем.doc
Скачиваний:
4
Добавлен:
13.09.2019
Размер:
476.67 Кб
Скачать

17.2.Организация работы с файлами

Для работы с файлом в программе необходимо описать файловую переменную соответствующего типа, например:

var F:text – для текстового файла;

F:file of тип_компонентов – для типизированного файла.

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

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

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

Завершив работу с файлом, его закрывают, при этом оставшиеся незаписанными данные из буфера пишутся в файл. Если файл не закрыть, эти данные можно потерять.

Все действия с файлами реализуются стандартными процедурами и функциями, в которых файловая переменная является первым параметром.

Замечание. Файловая переменная передается только по ссылке.

17.3.Подпрограммы для работы с файлами любых типов Связывание файловой переменной с файлом

procedure Assign(F, name)

где name ‑ строковое выражение (в частности, переменная или константа), задающее имя файла.

Если файл находится в текущем каталоге, указывается только имя файла, например, Assign(F,’data.txt’).

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

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

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

Открытие нового файла

procedure Rewrite(F)

Создает и открывает новый (пустой) файл, файловый указатель устанавливается в его начало. Если файл, связанный с файловой переменной, существует, он предварительно уничтожается.

Если файл текстовый, в него можно только записывать. Для типизированного файла можно и писать, и читать.

Открытие существующего файла

procedure Reset(F)

Файловый указатель устанавливается в начало файла. Если файл, связанный с файловой переменной, не существует, возникает ошибка.

Если файл текстовый, из него можно только читать. Для типизированного файла можно и писать, и читать.

Повторный вызов ReSet переустанавливает файловый указатель в начало файла.

Проверки конца файла

function Eof(F): boolean

Функция (означает End of file) возвращает true, если файловый указатель находится за последним компонентом файла (т.е. на конце файла).

Чтение из файла

procedure Read(F, список переменных)

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

  • Из текстовых файлов можно вводить целые и вещественные числа, символы и строки (числа перед занесением в переменную преобразуются из символьного представления в двоичный код чисел). Если перед вводом файловый указатель уже стоит на конце файла и ввод происходит в строковую переменную, она останется пустой и ошибки не будет. Для переменных других типов произойдет ошибка ввода.

  • Для типизированных файлов тип переменных должен совпадать с типом компонентов файла, который может быть структурированным (например, массивом, записью). Ввод за концом файла приведет к ошибке.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]