Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ОАиП_1 / Module4 / УЭ-1

.html
Скачиваний:
17
Добавлен:
25.02.2016
Размер:
14.14 Кб
Скачать

Документ без названия

Работа с файлами       Введение файлового типа в язык Паскаль вызвано необходимостью обеспечить возможность работы с периферийными (внешними) устройствами ЭВМ, предназначенными для ввода, вывода и хранения данных.       Файловый тип определяет упорядоченную совокупность произвольного числа однотипных компонентов. Общее свойство массива, множества и записи заключается в том, что количество их компонентов определено на этапе написания программы, тогда как количество компонентов файла в тексте программы не определяется и может быть произвольным.    Файловый тип (файл) - именованная область внешней памяти ПЭВМ (жесткого диска, гибкой дискеты, электронного "виртуального" диска), либо логическое устройство - потенциальный источник или приемник информации.       Любой файл имеет три характерных особенности: имя, что дает возможность программе работать одновременно с несколькими файлами содержит компоненты одного типа. Типом компонентов может быть любой тип Турбо-Паскаля, кроме файлов. Иными словами, нельзя создать «файл файлов» длина вновь создаваемого файла никак не оговаривается при его объявлении и ограничивается только емкостью устройств внешней памяти.       Паскаль поддерживает три файловых типа: текстовые файлы типизированные файлы нетипизированные файлы       Доступ к файлу в программе происходит с помощью переменных файлового типа.       Рассмотрим стандартные функции и процедуры, которые можно использовать при работе с файлами. Имя НазначениеПример Assign(имя_файловой_переменной, имя файла)     Cвязь между объявленным логическим файлом и реальным физическим файлом.     Установленная связь будет действовать до конца работы программы, или до тех пор, пока не будет сделано переназначение     Assign(f,'Phone_1.dat') {Связать переменную f c файлом Phone_1.dat}     File_Name:='Tarif.dat'; {Определить значение строковой переменной File_Name}     Assign(f1,File_Name); {Связать переменную f1 с файлом, имя которого хранится в переменной File_Name} ReSet(имя_файловой_переменной)     Открытие файла для чтения.     После успешного выполнения процедуры Reset файл готов к чтению из него первого элемента. Процедура завершается с сообщением об ошибке, если указанный файл не найден     ReSet(f)- открыть файл f для чтения ReWrite(имя_файловой_переменной)     Открытие файла для записи.     После успешного выполнения процедуры файл готов к записи в него первого элемента. Если указанный файл уже существовал, то все данные из него уничтожаются     ReWrite(f) - открыть файл f для записи Close(имя_файловой_переменной)     Закрытие файла.     Вызов процедуры Close необходим при завершении работы с файлом. Если по какой-то причине процедура Close не будет выполнена, файл все-же будет создан на внешнем устройстве, но содержимое последнего буфера в него не будет перенесено     Close(f) - закрыть файл f Read(имя_файловой_переменной, список переменных)     Чтение в переменную текущую запись файла, перемещая указатель на следующий компонент.     Тип файловых компонент и переменных должны совпадать. Если будет сделана попытка чтения несуществующих компонент, то произойдет ошибочное завершение программы. Необходимо либо точно рассчитывать количество компонент, либо перед каждым чтением данных делать проверку их существования     Read(f, Kart1) - читает текущую запись из файла f в переменную Kart1 Write(имя_файловой_переменной, список переменных)     Вывод содержимое переменной в текущую запись файла, также перемещая указатель на следующий компонент     Write(f, Kart2) - выводит содержимое переменной Kart2 в текущую запись файла f EOF(имя_файловой_переменной): boolean     Bозвращает значение True (истина), если при чтении достигнут конец файла (указатель находится за последним компонентом), и значение False (ложь) в любой другой ситуации     while not(EoF(f)) do     begin     {Пока не найден конец файла f}         read(f, Karta1); {Читать запись из f в Karta1}        . . .     end; ReName(имя_файловой_переменной, новое_имя_файла)     Переименование физического файла, связанный в программе с файловой переменной, присвоив ему новое_имя_файла, которое должно быть константой, переменной или выражением строкового типа.     Assign(f,'Phone_1.dat'); {Связать переменную f c файлом Phone_1.dat}     ReName(f,'Abonent.dbf'); {Переименовать Phone_1.dat в Abonent.dbf} Erase(имя_файловой_переменной)     Удаление с внешнего носителя физический файл, связанный с файловой переменной.     Assign(f,'Phone_1.dat'); {Связать переменную Fv1 c файлом Phone_1.dat}     Erase(f); {Удалить Phone_1.dat}     Попытка переименования или удаления несуществующего файла вызовет прерывание выполнения программы. IOResult     Возвращает целое число, соответствующее коду последней ошибки ввода - вывода.     При нормальном завершении операции функция вернет значение 0.     Assign(f, Name_of_File);{Связать файловую переменную с файлом}     {$I-} {Отключить стандартный контроль операций ввода-вывода}     ReSet(f); {Открыть файл}     {$I+} {Включить стандартный контроль операций ввода-вывода}     If IOResult=0 then {Проверить код завершения ReSet}         FileExists:=True {Если файл был успешно открыт, т.е. существует}     else         FileExists:=False; {Если файла нет}     Close(f) {Закрыть файл}     END; {FileExists}

Соседние файлы в папке Module4