home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
CP/M
/
CPM_CDROM.iso
/
mbug
/
mbug027.arc
/
UPDATE.INC
< prev
next >
Wrap
Text File
|
1979-12-31
|
5KB
|
170 lines
PROCEDURE find;
LABEL
escape;
CONST
time = 1000;
VAR
i,k,l : INTEGER;
dummy : str20;
tc : CHAR;
ptr : INTEGER;
ok2 : INTEGER;
BEGIN
IF (filesize(infile) = 0) THEN GOTO escape;
line(1);
dis(1,2,' F I N D M E N U ');
DisDate;
line(16);
dis(1,17,' Type in Ear Number | ^Z = ABORT |');
ClrEOL;
dummy := '';
inputstr(dummy,5,22,3,[^M,^Z],TC);
IF tc = ^Z THEN GOTO escape;
IF dummy <> '' THEN
BEGIN
dummy := UpcaseStr(dummy);
fillup(dummy);
find_ear(ptr,dummy);
IF found THEN
BEGIN
seek(infile,ptr);
Read(infile,Animal);
END;
END
ELSE
BEGIN
dis(1,17,' Type in Full Name | ^Z = ABORT |');
ClrEOL;
dummy := '';
inputstr(dummy,20,46,3,[^M,^Z],TC);
IF tc = ^Z THEN GOTO escape;
IF dummy <> '' THEN
BEGIN
seek(infile,0); {Used instead of reset}
REPEAT
Read(infile,Animal);
UNTIL (EOF(infile) OR (Animal.name = dummy));
END
ELSE
GOTO escape;
END;
line(1);
dis(1,2,' E D I T M E N U ');
DisDate;
IF found
THEN BEGIN
display_Animal(Animal);
line(16);
dis(1,17,' | | | | | | E = Edit | D = Delete | <ESC> = UPDATE MENU |');
f_table;
LowVideo;
dis(1,15,'P/table No, E, D or <ESC>');
NormVideo;
REPEAT
k := 0;
select(74,17,' ',['1','2','3','4','5','6','E','D',#27],ch);
val(ch,k,ok2);
IF k IN [1..6]
THEN Animals_table(k,Animal);
UNTIL (ch = #27) OR (ch = 'E') OR (ch = 'D');
dis(1,15,' ');
CASE ch OF
'E' : BEGIN
edit(Animal);
END;
'D' : BEGIN
Animal.ear_no := 'CLEAR';
update_Animal_table(Animal);
seek(infile,Animal.rec_no);
Write(infile,Animal);
END;
ELSE ch := ^M;
END;{case fo ch}
END
ELSE
BEGIN
LowVideo;
dis(30,15,'Animal not found');
NormVideo;
delay(time);
END;
escape:
END;
PROCEDURE Add;
(* Add is used to add a Animal *)
VAR
ear : str5;
k,ok2 : INTEGER;
BEGIN
dis(1,17,' | | | | | | | ^Z = ABORT | <ESC> = FINISHED |');
ClrEOL;
F_TABLE;
ear := '';
Initialize(Animal);
InputAnimal(Animal,CH);
check_ear(Animal.ear_no,ear);
IF ch = #27 THEN
BEGIN
Animal.rec_no := (filesize(infile));
IF filesize(infile) = 0
THEN Write(infile,Animal)
ELSE
BEGIN
seek(infile,(filesize(infile)));
Write(infile,Animal);
END;
ch := ' ';
END;
REPEAT
LowVideo;
dis(1,15,'P/table No or <ESC>');
NormVideo;
k := 0;
select(74,17,' ',['1','2','3','4','5','6','E','D',#27],ch);
val(ch,k,ok2);
IF k IN [1..6]
THEN Animals_table(k,Animal);
f_table;
UNTIL (ch = #27) OR (k IN [1..6]);
ch := ^M;
END;
BEGIN(* Update*)
line(1);
dis(1,2,' U P D A T E M E N U ');
disdate;
RESET(infile);
REPEAT
GotoXY(1,2);
GotoXY(60,2);
Write(filesize(infile): 5,' RECORDS IN USE');
DisplayForm;
k := 0;
line(16);
dis(1,17,' | | | | | | A = Add | F = Find | <ESC> = MAIN MENU |');
f_table;
select(74,17,' ',['1','2','3','4','5','6','A','F',#27],Ch);
val(ch,k,ok2);
IF k IN [1..6]
THEN BEGIN
IF Animal_table[k].rec_no <> -1
THEN BEGIN
seek(infile,Animal_table[k].Rec_no);
Read(infile,Animal);
display_Animal(Animal);
edit(Animal);
END;
END
ELSE
CASE Ch OF
'A' : Add;
'F' : Find;
END;
UNTIL Ch = #27;
ClrScr;
close(infile);
END;