русс | укр

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

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

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

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


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

Корректировка последовательного файла


Дата добавления: 2013-12-23; просмотров: 983; Нарушение авторских прав


Обработка файлов последовательного доступа

 

Чтобы обработать хранящиеся в файле данные, необходимо получить доступ к компонентам файла. Для этого надо:

Ø присвоить файлу имя (процедура Assign);

Ø открыть уже существующий на диске файл (процедура Reset);

Ø последовательно считать компоненты до нужного (оператор read);

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

Ø закрыть файл (процедура Close).



 

Пример.

Вывести на экран содержание всех записей файла. Блок вывода оформить процедурой с именем Оbr. Текст сохранить на диске под именем PОbr.

Procedure Obr;

begin

Assign(BooksFilet, ‘d: BIBL.DOC’);

Reset( BooksFile);

with RecBooks do

while not EOF(BooksFile) do

begin

read (BooksFile, RecBooks);

writeln(Nomer:5, Avtor: 16f Nazv: 10, Index:6)

end;

Close(BooksFile)

end;

 

Возможны три вида корректировки последовательного файла:

Ø рас­ширение файла за счет внесения новых компонентов,

Ø полная замена содержимого записи,

Ø корректировка значений полей отдельных за­писей.

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

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

Расширение файла предполагает выполнение следующих шагов:

присвоить файлу имя (процедура Assign);

Ø открыть уже существующий на диске файл (процедура Reset);

Ø установить указатель файла за последним компонентом;

Ø подготовить информацию для нового компонента;

Ø записать новый компонент (оператор write);

Ø закрыть файл (процедура Close).



Для установки указателя за последним компонентом можно ис­пользовать следующую инструкцию:

 

Seek (FV, FileSize(FV));

которая значительно эффективнее и короче, чем поиск конца файла путем перебора всех существующих в файле компонентов.

 

Пример.

Расширить файл BIBL.DOC двумя новыми компонентами. Оформить блок корректировки процедурой с именем Kоrr. Сохранить текст на диске под именем РКоrr.

Procedure Rash;

begin

Assign(BooksFile,’ d: BIBL.DOC’);

Reset( BooksFile);

Seek( BooksFi le, FileSize(BooksFi le));

with RecBooks do

while True do

begin

writeln ('Введите номер');

readIn (Nomer);

if Nomer = 9999 then

begin

Close( BooksFile);

Exit

end;

writeln ('Введите имя автора');

readln (Avtor);

writeln ('Введите название книги');

readln (Nazv);

writeln ('Введите значение индекса');

readln (Index);

write ( BooksFi le, RecBooks)

end

end;

 

Объединив все процедуры в одной программе с помощью директивы компилятора $I, получим следующий текст:

Program DernoSF;

Type

Books = record

Nomer: integer;

Avtor: string[16];

Nazv: string[30];

Index : integer;

end;

Var

BooksFile: file of Books;

RecBooks: Books;

I,Rej : integer;

{$I d: PSOZD.PAS} { включение текста процедуры создания}

{$I d: POBR.PAS} {включение текста процедуры обработки}

{$1 d: PKORR. PAS} {включение текста процедуры расширения}

Begin

while True do

begin

ClrScr;

writeln ('Укажите режим:');

writeln (' 1: создание файла');

writeln (' 2: обработка файла');

writeIn (' 3: расширение файла’);

writeIn (' 4: выход из программы’ );

readln (Rej);

case Rej of

1: Org-;

2: Obr;

3: Rash;

4: Halt

else writeIn ('Ошибка! Повторите номер режима')

end

end

End.

 

Такая организация программы имеет недостаток: имя файла за­фиксировано в программе. Чтобы его изменить, надо корректировать все инструкции, где это имя встречается. Поэтому в следующих примерах имя файла будем запрашивать у пользователя и вводить с клавиатуры.



<== предыдущая лекция | следующая лекция ==>
Файлы последовательного доступа. | Пример.


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


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

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

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


 


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

 
 

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

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