Дополнительные операции (применяемые только
Алгоритмические языки и программирование
РАБОТА с ФАЙЛАМИ
Методические указания
к выполнению лабораторной работы №6
для студентов очной формы обучения
специальности 230201 – "Информационные системы
и технологии"
Брянск 2007
УДК 004.43
Алгоритмические языки и программирование. Работа с файлами: методические указания к выполнению лабораторной работы №6 для студентов очной формы обучения специальности 230201 – "Информационные системы и технологии". – Брянск: БГТУ, 2007. – 24 с.
Разработали: С.М. Рощин, к.т.н., доц.
Ю.А. Леонов, асс.
Научный редактор Ю.М. Казаков
Редактор издательства Л.И. Афонина
Компьютерный набор С.М. Рощин
Рекомендовано кафедрой «Компьютерные технологии и системы» БГТУ (протокол № от )
Темплан 2007г., п. 451
Подписано в печать Формат 60х84 1/16. Бумага офсетная.
Офсетная печать.
Усл. печ. л. 1,39 Уч. – изд. л. 1,39 Тираж 50 экз. Заказ Бесплатно
|
Издательство брянского государственного технического университета, 241035, Брянск, бульвар 50-летия Октября, 7, БГТУ. 58-82-49
Лаборатория оперативной полиграфии БГТУ, ул. Харьковская, 9
ЦЕЛЬ РАБОТЫ
Целью работы является овладение практическими навыками в работе с типизированными, текстовыми и нетипизированными файлами, а также изучение основных процедур и функций предназначенных для работы с файлами.
Продолжительность работы – 6ч.
Теоретическая часть
Введение файлового типа в язык Pascal вызвано необходимостью обеспечить возможность работы с периферийными (внешними) устройствами ЭВМ, предназначенными для ввода, вывода и хранения данных (жесткий магнитный диск (ЖМД), гибкий магнитный диск (ГМД), компакт-диск (CD-ROM) и др.). Файловый тип данных, или файл, определяет упорядоченную совокупность произвольного числа однотипных компонентов. Общее свойство массива, множества и записи заключается в том, что количество их компонентов определено на этапе написания программы, тогда как количество компонентов файла в тексте программы не определяется и может быть произвольным.
Файл - совокупность связанных данных, хранящихся во внешней памяти компьютера и рассматриваемых как единое целое. Файл однозначно идентифицируется указанием имени файла, его расширения и пути доступа к файлу. Каждый файл состоит из атрибутов и содержимого. Файл в таком понимании называют физическим файлом, то есть существующим на некотором материальном носителе информации.
С другой стороны, файл – это одна из многих структур данных, используемых в программировании. Файл в таком понимании называют логическим файлом, т.е. существующим только в нашем логическом представлении при написании программы. В программах логические файлы представляются файловыми переменными определенного типа.
Структура физического файла представляет собой простую последовательность байтов памяти носителя информации.
Структура логического файла – это способ восприятия файла в программе. Образно говоря, это «шаблон» («окно»), через который программист смотрит на физическую структуру файла.
В зависимости от способа объявления в программе можно выделить три вида файлов:
1) типизированные файлы;
2) текстовые файлы;
3) нетипизированные файлы.
При работе с файлами любого вида существует определенный порядок действий, которого необходимо придерживаться:
1. Объявление файловой переменной (логического файла).
2. Связывание этой переменной с конкретным файлом на диске.
3. Открытие файла для записи либо чтения.
4. Действия с файлом: чтение либо запись.
5. Закрытие файла.
Типизированные файлы
Типизированный файл – это файл, все компоненты которого одного типа данных, заданного при объявлении файловой переменной.
Объявление файловой переменной
Для работы с типизированным файлом необходимо объявить файловую переменную (логический файл). Типизированные файлы могут быть любого типа данных, кроме файлового и опирающегося на файловый тип
Var
<имя_файловой_переменной>: File of <тип компонентов>;
Например:
Var
FR: File of real; {Объявление файла вещественных чисел}
FI : File of integer; {Объявление файла целых чисел}
{Объявление файловой переменной может быть выполнено по-другому:}
Type
FIO= string[20];
SPISOK=File of FIO;
Var
STUD, PREP: SPISOK; {STUD и PREP файловые переменные.}
{Еще одно объявление файловой переменной:}
Type
Pasport = Record {Объявление типа c именем Pasport}
Tel: string[6]; {Телефон}
Fam: string[17]; {Фамилия}
NF: string[2]; {Имя и отчество}
end;
Var
Fv1: File of Pasport; {Объявление файловой переменной (логического файла) абонентов ГТС}
Связывание файловой переменной
С физическим файлом
В Pascal связь между объявленным логическим файлом и реальным физическим файлом устанавливается с помощью процедуры
Assign(имя_файловой_переменной, имя файла);
При этом имя файла можно задавать как в виде строковой константы, так и в виде строковой переменной.
Например:
{Связь переменной FI c файлом Phone.dat}
Assign(FI, 'Phone.dat');
{Присвоение значения строковой переменной File_Name}
File_Name:='Tarif.dat';
{Связь переменной FR с физическим файлом, имя которого хранится в переменной File_Name}
Assign(FR, File_Name);
Открытие файла
Обработка компонентов файла становится возможной только после его открытия. Поэтому после связывания логического файла с физическим его необходимо открыть с помощью одной из процедур:
Reset(имя_файловой_переменной);
или Rewrite(имя_файловой_переменной);
При работе с файлом используется понятие текущей записи. В каждый момент времени для обработки файла (чтения или записи) доступен только один компонент открытого файла, который и называется текущей записью. Будем говорить, что текущей называется та запись, на которой находится указатель записи в файле. При этом важно помнить, что записи типизированного файла нумеруются, начиная с нуля.
Процедура Reset открывает существующий файл как для чтения, так и для записи. При открытии указатель текущей позиции файла устанавливается в его начало. Если физический файл с указанным именем отсутствует, то возникает ошибка во время выполнения программы (runtime error), которую можно подавить включением в код программы директивы компилятора {$I-}.
Процедура Rewrite открывает файл для записи, подготовляя его к заполнению с нулевого элемента. Попытка открыть с помощью этой процедуры существующий файл приводит к очистке текущего содержимого файла (файл становится пустым).
Например:
Reset(FI); {Открытие файла FI}
Rewrite(FR); {Открытие файла FR для записи}
Операции ввода/вывода
После открытия файла ввод и вывод записей осуществляется с помощью обращения к процедурам:
Read(имя_файловой_переменной, имя_переменной);
и
Write(имя_файловой_переменной, имя_переменной);
Процедура Read читает в переменную текущую запись файла, автоматически перемещая указатель на следующую запись.
Процедура Write выводит содержимое переменной в текущую запись файла, также перемещая указатель на следующую запись.
Например:
Read(FI, Kart1); {Чтение текущей записи из файла FI в переменную Kart1}
Write(FR, Kart2); {Вывод содержимого переменной Kart2 в текущую запись файла FR}
Таким образом, с помощью процедур Read и Write можно последовательно прочитать все записи файла и заполнить файл, т.е. эти процедуры позволяют осуществить последовательный доступ к типизированным файлам.
Количество элементов файла в конкретный момент времени может быть неизвестно. Для правильной работы с файлом в этом случае перед каждым выполнением операции вывода необходимо проверять достижение конца файла.
Структура файла такова, что в конце файла располагается специальный символ EOF. Существует функция, позволяющая осуществлять контроль достижения конца файла:
EOF(имя_файловой_переменной);
Она возвращает значение true (истина), если при чтении достигнут конец файла (указатель находится за последним компонентом), и значение false (ложь), когда указатель находится на другом компоненте.
Эта функция наиболее часто используется в цикле чтения записей до конца файла.
Например:
{Пока не найден конец файла FI}
While not(EOF(FI)) Do Begin
Read(FI, Karta1); {Читать запись из FI в Karta1}
End;
Дополнительные операции (применяемые только
Не нашли, что искали? Воспользуйтесь поиском по сайту:
©2015 - 2024 stydopedia.ru Все материалы защищены законодательством РФ.
|