Практическая обработка множества данных, представляющих собой массив указателей на записи

Курсовой проект - Компьютеры, программирование

Другие курсовые по предмету Компьютеры, программирование

? элемента};

{Закрытие файла}(file1);;

 

В процедуру из главной программы передается имя набора данных. В главную программу из процедуры передается номер текущего элемента. После открытия набора данных процедура выводит его имя, затем шапку таблицы. Следуюющие действия выполняются в цикле, котороый будет выполнятся пока не закончится данный набор данных. В зависимости от значения переменной перечислимого типа в поле tipTelevizor оператором case просиходит присвоение переменной К определнного значения (цветной, черно-белый или переносной). После чего просиходит вывод элементов на экран. В конце переменной, содержащей номер текущего элемента, присваивается значение последнего элемента и набор данных закрывается.

Процедура для поиска элемента по введеному номеру

Poisk_Elem_ND;

{Связывание файловой переменной с НД на диске}

{Открытие файла для чтения}

{Запрос на ввод номера нужной записи}(Введите номер нужной записи);(n);

{Поиск нужной записи}(File1,n-1);

{Чтение записи из файла}(File1,TVzap);

{Присвоение переменной К значения в зависимости от значениея переменной перечислимого типа}

{Вывод шапки таблицы}

{Вывод элемента}

{Вывод нижней границы таблицы}

{Закрытие файла}

{Присовение нужного номера текущему элементу}:=n+1;;

{end procedure Poisk_Elem_ND}

 

Эта процедура обрабатывает запрос пользователя на поиск элемента в НД по его порядковому номеру и выводит информацию о данном элементе. В процедуру из главной программы передается имя набора данных. В главную программу из процедуры передается номер текущего элемента. После открытия набора данных процедура запращивает номер элемента, который следует найти. Затем процедурой seek(File1,n-1) в файле находится нужная запись. Эта запись выводится как единственный элемент таблицы и текущему значению присваивается номер элемента, который искали, плюс один. После вывода файл закрывается.

Процедура для вывода текущего элемента:

 

procedure Vivod_Tek;

{Присвоение выводимому номеру номер текущего элемента}

numb:=n;

{Связывание файловой переменной с НД на диске}

{Открытие файла для чтения}

{Поиск нужной записи}

seek(File1,numb-1);

{Чтение записи из файла}

{Присвоение переменной К значения в зависимости от значениея переменной перечислимого типа}

{Вывод шапки таблицы}

{Вывод элемента}

{Вывод нижней границы таблицы}

{Закрытие файла}(file1);;

 

В процедуру из главной программы передается имя набора данных и номер текущего элемента. Поиск и вывод элемента происходит так же, как в процедуре для поиска элемента по введеному номеру procedure Poisk_Elem_ND.

1.4Модуль RabotaDR.tpu

 

Этот модуль содержит три процедуры, в которых происходи обращение или переход к работе с другим набором данных

Заголовок и описательная часть данного модуля представлены ниже:

RabotaDR;RabotaND;

 

Этот модуль требует подключения описанного ранее модуля RabotaND, так как в нем описано большенство переменных, которые используются в модуле RabotaDR. Никаких собственных переменных в модуле RabotaDR не описано.

В данному модуле находятся следующие процедуры:

 

{Процедура для перехода к друому НД}Perehod_Drug_ND (var Filename:string;);

{Процедура создания нового НД из всех элементов с заданным значением ключе-вого поля}Sozdat_ND_kl (var Filename:string; var n:integer);

{Процедура сохраниения всех элементов в другом НД}Sohr_v_nov (var Filename:string; var n:integer);

 

Процедура для перехода к друому НД:

Perehod_Drug_ND;DifFilename:string;

{Вывод имени текущего набора данных} (Ваш текущий набор данных - , Filename);

{Запрос на вывод нового адреса НД}(Введите путь к необходимому набору данных);(DifFilename);

{Замена имени старого набора данных на имя нового набора}:=DifFilename;

{Вывод имени текущего набора данных}(Ваш новый набор данных - , filename);;

{end procedure Perehod_Drug_ND;}

 

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

Процедура создания нового НД из всех элементов с заданным значением ключевого поля:

Sozdat_ND_kl;

{Запрос ключевого поля}z: Tip;_tipa: byte;

{Связывание файловой переменной с НД на диске}

{Открытие файла для чтения}

{Запрос на ввод имени файла, который будут сохранены элементы с заданым ключевым полем }

{Связывание второй файловой переменной со вторым НД на диске}

{Открытие второго файла для записи}

{Запрос на значение ключевого поля}

{Выбор значения перечислимого типа в зависимости от выбранного пользователем типа}vibor_tipa of

: z:=cvet;

: z:=gherno_bel;

: z:=perenosn;;

{Пока не достигнут конец файла, поиск} not eof(file1) do

{Чтение одной записи}(File1,TVzap);

{Если содержимое ключевого поля совпадает с нужным}TVzap.TipTelevizor = z then

{Запись записи в новый файл}(Filekl, TVzap);;

{Закрытие файлов}

{Изменение имени файла, с которым будет продолжаться работа}:=filenamekluch;;

 

В процедуру из главной программы передается имя набора данных, из которого мы будем записывать элементы. В процедуре описаны следующие переменные:

  1. Z - переменная перечислимого типа для выбора ключевого поля.
  2. vibor_tipa - для выполнения запроса о значении ключевого поля.