Процедура сортировки записей
Листинг процедуры сортировки записей. См приложение 3
Описание переменных:
st,a,b:baz – переменные записи, i,j:byte – переменные счетчика записей, fbaz:fileofbaz – типизированный файл.
Описание процедуры:
Процедура сортировки идет по принципу «пузырька». Сортировка в моей программе производилась по информационному полю, соответствующему названию фирмы. Еще одной особенностью хочу отметить тот факт, что процедура сортировки переписывает исходный файл уже отсортированными записями с целью удобства в использовании справочной системы. Так же как и в предыдущих процедурах идет связывание переменной с файлом и открытие его на чтение записей из файла. После этого включаем два счетчика циклами for. Первый счетчик считаем переменную i от0 до размера файла без одной записей, второй счетчик для j от i +1 до размера файла без одной записи. Затем в переменные a и b кладем значения информационных полей. И начинаем их сравнивать. Сравнение получается следующим образом: количество сравнений будет равно 29, так как число записей равно 30, а саму запись с самой собой нам сравнивать не надо. Первая запись из первой переменной сравнивается со второй и последующими записями из второй переменной. Если значение первой переменной оказывается больше, чем значение второй, тогда значение большего и меньшего элемента соответственно записываются в наш файл. Это повторяется до тех пор, пока сравнение не пройдут все записи. В конце идет закрытие файла и завершение процедуры.
Процедура поиска записей
Листинг процедуры поиска записей. См приложение 4
Описание переменных:
a:baz – переменные записи, i:integer – переменные счетчика записей, fbaz:fileoftbaz – типизированный файл, fir:string – переменная содержащая информацию о введенном названии фирмы пользователем.
Описание процедуры:
Процедура поиска ведется только по одному полю – полю содержащему название команды (Nazvanie). Так же отмечу, что поиск регистр независимый. Осуществить это помогла процедура upcase, о которой я расскажу немного позже. Вначале очищаем экран командой clrscr. Затем выводим приглашение на ввод нужной фирмы, полученную информацию присваиваем переменной fir с помощью команды read. Дальше процедура связывает переменную файла fbaz с физическим файлом UEFA.txt, находящимся в той же директории, что и сама программа. Затем процедура открывает файл на чтение командой reset(fbaz). Командой for включаем счетчик от первой до последней записи и считываем записи из файла. После этого следующий алгоритм опишу в нескольких действиях:
1) возводим заданное слово и взятое из записи в верхний регистр, для последующего сравнения
2) поэлементно сравниваем заданное слово и информационное поле Nazvanie
В действительности алгоритм 2) включает в себя алгоритм 1). Если сравнение заданного пользователем искомого слова и поля записи названия фирмы отлично от нуля, то есть нашлось совпадение, тогда выводим на экран соответствующую запись. В противном случае, ничего на экран не выводится. Процедура закрывает файл, затем заканчивается сама процедура.
Процедуры редактирования записей
Процедура удаления модели
Листинг процедуры удаления. См приложение 5
Описание переменных:
fbaz,f2:fileoftbaz – типизированный файл.
Описание процедуры:
Процедура связывает переменную файла f2 с внутренним, временным файлом delit.txt, находящимся в той же директории, что и сама программа. Затем процедура открывает файл на чтение командой reset(fbaz).rewrite(f2) – открывает файл f2 только на запись, Seek(fbaz, 0) помещает указатель в конец файла, пока не будет достигнут конец файла затем процедура записывает изменения внесённые в файл, после удаления, смещает все значения в списке на один, закрывает все файлы, при помощи функции erase(fbaz);стирает внешний файл, а внутренний переименовывает в (f2,'UEFA.txt');