русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Функции


Дата добавления: 2015-01-16; просмотров: 530; Нарушение авторских прав


Function ...

EoF ( var F ) : Boolean;
возвращает значение True, если указатель установлен за последней компонентой файла (констатирует конец файла), и False — в противном случае
FilePos ( var F ) : LongInt;
возвращает номер текущей компоненты файла (на которую установлен указатель)
FileSize ( var F ) : LongInt;
возвращает текущий размер файла (количество компонент)
IOResult : Word;
возвращает значение 0, если последняя операция ввода/вывода завершена успешно, и другое значение — в противном случае (после применения этой функции, ее значение сбрасывается в 0); функцию можно использовать только при наличии ключа компилятора {$I-}

Основные виды работ с типизованными файлами

Ниже приведенные процедуры используют следующие описания:

Type

Kniga= Record

Nomer:Integer;

Avtor:String [ 20 ];

Nazv:String [ 50 ];

God:Integer

end ;

Var

Spisok : File of Kniga;

Kn :Kniga;

FileName:String [ 12 ];

Последовательная (начальная) организация (формирование) файла:

Для последовательного создания файла необходимо выполнить:

· связать файловую переменную с именем создаваемого файла (дать файлу имя): Assign

· открыть новый файл: ReWrite

чаще всего в цикле:

· подготовить информацию (компоненту) для вывода в файл

· записать компоненту в файл: Write

· закрыть файл: Close

Рассмотрим пример занесения в файл списка литературы (см. описания выше):

ProcedurePoslOrg ;

Begin

Write ( Дайте имя файлу: );

ReadLn ( FileName );

Assign ( Spisok,FileName );

ReWrite ( Spisok );

WhileTrue do

With Kn do

Begin

Write ( Номер книги (9999 – конец формирования списка): );

ReadLn ( Nomer );

IfNomer = 9999 then

Begin

Close ( Spisok );



Exit

End ;

Write ( ФИО автора: );

ReadLn ( Avtor );

Write ( Название книги: );

ReadLn ( Nazv );

Write ( Год издания: );

ReadLn ( God );

Write ( Spisok,Kn )

End

End ;

Последовательная обработка файла:

Для последовательной обработки файла необходимо выполнить:

· связать файловую переменную с именем обрабатываемого файла: Assign

· открыть существующий файл: ReSet

чаще всего в цикле:

· последовательно считать компоненты до нужной компоненты: Read

· выполнить обработку

· закрыть файл: Close

В качестве примера рассмотрим чтение и вывод на экран всего файла, созданного предыдущей процедурой:

ProcedurePoslObr ;

Begin

Write ( Дайте имя файлу: );

ReadLn ( FileName );

Assign ( Spisok,FileName );

ReSet ( Spisok );

WhileNot EoF ( Spisok ) do

With Kn do

Begin

Read ( Spisok,Kn );

WriteLn ( Nomer :4,Avtor :20,Nazv :50,God :6 )

End ;

Close ( Spisok )

End ;

Расширение файла (дополнительная запись новых компонент):

Для расширения файла необходимо выполнить:

· связать файловую переменную с именем расширяемого файла: Assign

· открыть существующий файл: ReSet

· установить указатель за последней компонентой файла: удобнее с помощью Seek

чаще всего в цикле:

· подготовить новую компоненту для вывода в файл

· записать компоненту в файл: Write

· закрыть файл: Close

ProcedureRassh ;

Begin

Write ( Дайте имя файлу: );

ReadLn ( FileName );

Assign ( Spisok,FileName );

ReSet ( Spisok );

Seek ( Spisok,FileSize( Spisok ));

WhileTrue do

With Kn do

Begin

Write ( Номер книги (9999 – конец формирования списка): );

ReadLn ( Nomer );

IfNomer = 9999 then

Begin

Close ( Spisok );



Exit

End ;

Write ( ФИО автора: );

ReadLn ( Avtor );

Write ( Название книги: );

ReadLn ( Nazv );

Write ( Год издания: );

ReadLn ( God );

Write ( Spisok,Kn )

End

End ;

Корректировка файла по ключу:

Для корректировки файла необходимо выполнить:

· связать файловую переменную с именем корректируемого файла: Assign

· открыть существующий файл: ReSet

чаще всего в цикле:

· подвести указатель к корректируемой компоненте файла: Seek

· считать корректируемую компоненту: Read

· откорректировать нужные поля

· повторить подвод указателя к нужной компоненте файла: Seek

· записать откорректированную компоненту в файл: Write

· закрыть файл: Close

Откорректируем в созданном файле годы издания некоторых книг (для новых изданий этих книг):

ProcedureKorrKl ;

Var

NovGod,i,k,kl :Integer;

Begin

Write ( Дайте имя файлу: );

ReadLn ( FileName );

Assign ( Spisok,FileName );

ReSet ( Spisok );

Write ( Число корректируемых записей: );

ReadLn ( k );

Fori:= 1 to k do

With Kn do

Begin

Write ( Номер кооректируемой записи: );

ReadLn ( kl );

Write ( Новый год издания: );

ReadLn ( NovGod );

Seek ( Spisok,kl - 1);

Read ( Spisok,Kn );

God:= NovGod;

Seek ( Spisok,kl - 1);

Write ( Spisok,Kn )

End ;

Close ( Spisok )

End ;

Обработка файла по ключу:

Необходимо выполнить:

· связать файловую переменную с именем файла: Assign

· открыть существующий файл: ReSet

чаще всего в цикле:

· подвести указатель (по ключу) к нужной компоненте файла: Seek

· считать компоненту: Read

· выполнить обработку

· закрыть файл: Close

Выведем некоторые записи из списка:

ProcedureObrKl ;

Var

kl :Integer;

Begin

Write ( Дайте имя файлу: );

ReadLn ( FileName );

Assign ( Spisok,FileName );

ReSet ( Spisok );

WhileTrue do

Begin

Write ( Ключ выводимой записи (9999 – выход): );

ReadLn ( kl );

Ifkl = 9999 then

Begin

Close ( Spisok );



Exit

End ;

Seek ( Spisok,kl - 1);

Read ( Spisok,Kn );

With Kn do

WriteLn ( Nomer :4,Avtor :20,Nazv :50,God :6 )

End

End ;

Организация файла произвольного доступа (форматирование файла):

Занесем в файл фиктивные записи (например, пробелы и нули) для возможности в будущем заносить в файл записи на нужные места:

ProcedureFormatirFile ;

Var

i,Razmer :Integer;

Begin

Write ( Дайте имя файлу: );

ReadLn ( FileName );

Assign ( Spisok,FileName );

ReWrite ( Spisok );

Write ( Начальный размер файла: );

ReadLn ( Razmer );

Fori:= 1 to Razmer do

With Kn do

Begin

Nomer:= i;

Avtor:= ‘ ’ ;

Nazv:= ‘ ’ ;

God:= 0;

Write ( Spisok,Kn )

End ;

Close ( Spisok )

End ;

Загрузка (создание) отформатированного файла по ключу:

По ключу заносится фактическая информация, которая замещает фиктивную:

ProcedureZagrKl ;

Var

i,k,kl :Integer;

Begin

Write ( Дайте имя файлу: );

ReadLn ( FileName );

Assign ( Spisok,FileName );

ReSet ( Spisok );

Write ( Число создаваемых записей: );

ReadLn ( k );

Fori:= 1 to k do

With Kn do

Begin

Write ( Номер книги: );

ReadLn ( Nomer );

kl:= Nomer;

Write ( ФИО автора: );

ReadLn ( Avtor );

Write ( Название книги: );

ReadLn ( Nazv );

Write ( Год издания: );

ReadLn ( God );

Seek ( Spisok,kl - 1);

Write ( Spisok,Kn )

End ;

Close ( Spisok )

End ;

 




<== предыдущая лекция | следующая лекция ==>
Procedure ... | Procedure ...


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 2.275 сек.