Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
програмирование 49-54.docx
Скачиваний:
6
Добавлен:
01.05.2025
Размер:
561.12 Кб
Скачать
  1. Файловый тип данных в PascalAbc.Net, классификация файлов. Базовые операции над файлами (связывание с физическим файлом, инициация, переименование, удаление).

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

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

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

Операция вывода означает пересылку данных из основной памяти компьютера в выходной файл (т.е. внешнее устройство).

Инициировать файл - указать для него направление передачи данных.

Файл можно инициировать для

  • чтения,

  • записи,

  • дозаписи.

Инициация файла для чтения -

RESET(<файл. пер.>);

Инициация файла для записи -

WRITE(<файл. пер.>,<сп. вывода>);

REWRITE(<файл. пер>);

Инициация файла для дозаписи - APPEND(<файл. пер.>); - только текстовый файл!

Физическими файлами называют файлы, которые хранятся на периферийных устройствах. Имена физических файлов определяет ОС (операционная система). В Паскаль-программах имена файлов задают при помощи строк. К примеру файл на жестком диске может представляться в таком виде:

'laborant.txt'

'd:\file\primer.dat'

'Program Files'

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

Assign(f, FileName)

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

После связи файловой переменной с дисковым именем файла в программе нужно указать направление передачи данных (открыть файл). В зависимости от этого направления говорят о чтении из файла или записи в файл.

Reset(f)

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

Если f - типизированный файл, то процедурой reset он открывается для чтения и записи одновременно.

Rewrite(f)

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

Close(f)

закрывает открытый до этого файл с файловой переменной f. Вызов процедуры Close необходим при завершении работы с файлом. Если по какой-то причине процедура Close не будет выполнена, файл все-же будет создан на внешнем устройстве, но содержимое последнего буфера в него не будет перенесено.

EOF(f): boolean

возвращает значение TRUE, когда при чтении достигнут конец файла. Это означает, что уже прочитан последний элемент в файле или файл после открытия оказался пуст.

Rename(f, NewName)

позволяет переименовать физический файл на диске, связанный с файловой переменной f. Переименование возможно после закрытия файла.

Erase(f)

уничтожает физический файл на диске, который был связан с файловой переменной f. Файл к моменту вызова процедуры Erase должен быть закрыт.

IOResult

возвращает целое число, соответствующее коду последней ошибки ввода - вывода. При нормальном завершении операции функция вернет значение 0. Значение функции IOResult необходимо присваивать какой-либо переменной, так как при каждом вызове функция обнуляет свое значение. Функция IOResult работает только при выключенном режиме проверок ошибок ввода - вывода или с ключом компиляции {$I-}.

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

Процедура ReName(имя_файловой_переменной, новое_имя_файла); позволяет переименовать физический файл, связанный в программе с файловой переменной, присвоив ему новое_имя_файла, которое должно быть константой, переменной или выражением строкового типа.

Например: Assign(Fv1,'Phone_1.dat'); {Связать переменную Fv1 c файлом Phone_1.dat} ReName(Fv1,'Abonent.dbf'); {Переименовать Phone_1.dat в Abonent.dbf}

Процедура Erase(имя_файловой_переменной); удаляет (стирает) с внешнего носителя физический файл, связанный с файловой переменной.

Например: Assign(Fv1,'Phone_1.dat'); {Связать переменную Fv1 c файлом Phone_1.dat} Erase(Fv1); {Удалить Phone_1.dat}Попытка переименования или удаления несуществующего файла вызовет прерывание выполнения программы.