Скачиваний:
75
Добавлен:
23.06.2014
Размер:
5.17 Кб
Скачать
program Adress;

{блок модулей}
uses CRT;

{используемые типы и записи}
type
{запись результатов ввода новых данных}
TDlgData = record
Number : string[100]; {Номер телефона}
Name : string[100]; {ФИО абонента}
Street :string[100]; {Адресс абонента}
end;
file1 = file of TDlgData; {описание типа файла данных}

{константа - массив элементов меню}
const menu : array[1..4] of string=('[ Create record ]',
'[ Find record ]',
'[ List record ]',
'[ Exit ]');

{глобальные переменные программы}
var
RData : TDlgData;{переменная типа нашей записи}
f:File of TDlgData;{переменная типа файла записи}
curchoice, status, temp: byte;{необходимые переменные для меню}
ch: char;{необходимые переменные для меню}


procedure LData;{процедура вывода всех записей}

var
AdrR:file1;{переменная считывания записи}
AdrS:TEXT;{переменная записи}
t:TDlgData;
S:string;
BEGIN
clrscr; {очищаем экран}
textbackground(0);
Assign(AdrR,'Adress.dat'); {связываем переменную для считывания с файлом записей}
Reset(AdrR);
writeln(' List records');
writeln('Number of phone Abonent Name Street');


{цикл считывания и вывода записей}
while not Eof(AdrR) do
begin
read(AdrR,t);{считали запись}
writeln(' '+t.Number + ' ' + t.Name + ' ' + t.Street);{вывели запись}
end;
close(AdrR);
readkey;
clrscr;
end;



{процедура поиска и записи найденых записей в файл}
procedure XData;
var
AdrR:file1;
AdrS:TEXT;
t:TDlgData;
S:string;
BEGIN
clrscr;
textbackground(0);
Writeln('Enter Street');
readln(S);{запрос параметра поиска}
writeln(' Finding racords');
writeln('Number of phone Abonent Name Street');

Assign(AdrR,'Adress.dat');{связываемся с файлом хранения всех записей}
Reset(AdrR);
Assign(AdrS,'Find.txt'); {связываемся с файлом хранения найденных записей}
Rewrite(AdrS);{очищаем файл найденных записей}

while not Eof(AdrR) do
begin
read(AdrR,t);
{поиск нужной записи}
if t.Street= S then
begin

writeln(' '+t.Number + ' ' + t.Name + ' ' + t.Street);
write(AdrS,t.Number + ' ' + t.Name + ' ' + t.Street);
end;
end;
close(AdrR);
close(AdrS);
readkey;
clrscr;
end;

{процедура добавления новых записей}
procedure WData;
var
N,Na,S: string;
begin
clrscr;
textbackground(0);
{запрос параметров}
Writeln('Enter number phone');
readln(N);
Writeln('Enter abonent Name');
readln(Na);
Writeln('Enter Street');
readln(S);
{сохранение параметров в запись}
RData.Number := N;
RData.Name := Na;
RData.Street := S;

Assign(f,'Adress.dat');{связываемся с файлом хранения найденных записей}
Reset(f);
Seek(f,FileSize(f));{переходим в конец файла}
write(f,RData); {создаем запись в файле}
clrscr;

end;

{основная программа}
Begin
clrscr;
{меню}
start: curchoice:=1;status:=128;textcolor(7);textbackground(0); {// инициализация}
asm mov ah,01;mov cl,$20;int $10;end; { // убираем курсор}
for temp:=1 to 4 do writeln(menu[temp]); { // выводим меню}
repeat
{ // цикл идет..}
gotoxy(1,curchoice); textcolor(20); { // рисуем полоску}
textbackground(7); write(menu[curchoice]); {// выбора}
if keypressed then
case readkey of { // проверяем кнопки}
#72: if curchoice>1 then begin { // вниз, если можно}
textcolor(7);textbackground(0); {// стираем пред.}
{ // надпись}
gotoxy(1,curchoice);write(menu[curchoice]);dec(curchoice);
end;
#80: if curchoice<4 then begin { // вверх, если можно}
textcolor(7);textbackground(0);
gotoxy(1,curchoice);write(menu[curchoice]);inc(curchoice);
end;
#27: status:=4; { // escape}
{если нажат enter то вызываем соотв процедуру}
#13: case curchoice of
1: begin
WData;
curchoice:=1;status:=128;textcolor(7);textbackground(0);
for temp:=1 to 4 do writeln(menu[temp]);
end;

2:begin
XData;
curchoice:=1;status:=128;textcolor(7);textbackground(0);
for temp:=1 to 4 do writeln(menu[temp]);
end;

3:begin
LData;
curchoice:=1;status:=128;textcolor(7);textbackground(0);
for temp:=1 to 4 do writeln(menu[temp]);
end;

4:exit; { // enter}
end;
end;
until status=4; { // ..пока не выбран последний}
{ // пункт/не нажат escape}
asm mov ah,01; mov cx,$0E0D; int $10; end;
textcolor(7); textbackground(0); {// ставим нормальный цвет}



end.{!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!}
Соседние файлы в папке 5