Практическая обработка множества данных, представляющих собой массив указателей на записи
Курсовой проект - Компьютеры, программирование
Другие курсовые по предмету Компьютеры, программирование
? элемента};
{Закрытие файла}(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;;
В процедуру из главной программы передается имя набора данных, из которого мы будем записывать элементы. В процедуре описаны следующие переменные: