Сделай Сам Свою Работу на 5

Дополнительные операции (применяемые только





Алгоритмические языки и программирование

 

РАБОТА с ФАЙЛАМИ

 

Методические указания

к выполнению лабораторной работы №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 Все материалы защищены законодательством РФ.