PROGRAM TELEFONE; USES CRT; VAR NM,N:STRING; CH,I,C,FILELENGTH:INTEGER; PNO,NO:LONGINT; T,TELFILE:TEXT; FLAG:BOOLEAN; LABEL A; PROCEDURE FULLNAME; BEGIN CLRSCR; FLAG:=FALSE; WRITE('ENTER FULL NAME OF PERSON:'); READLN(N); N:=' '+N; RESET(TELFILE); WHILE NOT EOF(TELFILE) DO BEGIN READLN(TELFILE,PNO,NM); IF NM=N THEN BEGIN FLAG:=TRUE; WRITELN(PNO); GOTOXY(1,24); WRITE('PRESS SPACEBAR TO CONTINUE:'); REPEAT UNTIL READKEY=' '; END; END; CLOSE(TELFILE); WRITELN; IF FLAG=FALSE THEN BEGIN WRITELN('NAME NOT FOUND'); DELAY(3000); END; END; PROCEDURE NUMBER; VAR I:LONGINT; BEGIN FLAG:=FALSE; CLRSCR; WRITE('ENTER NUMBER:'); READLN(I); RESET(TELFILE); WHILE NOT EOF(TELFILE) DO BEGIN READLN(TELFILE,PNO,NM); IF PNO=I THEN BEGIN FLAG:=TRUE; WRITELN(NM); GOTOXY(1,24); WRITE('ENTER SPACEBAR TO CONTINUE:'); REPEAT UNTIL READKEY=' '; END; END; CLOSE(TELFILE); WRITELN; IF FLAG=FALSE THEN BEGIN WRITELN('NUMBER NOT FOUND'); DELAY(4000); END; END; PROCEDURE FIRSTNAME; BEGIN FLAG:=FALSE; CLRSCR; WRITE('INPUT FIRST NAME OF PERSON:'); READLN(N); N:=' '+N; RESET(TELFILE); WHILE NOT EOF(TELFILE) DO BEGIN READLN(TELFILE,PNO,NM); I:=2; WHILE COPY(NM,I,1) <> ' ' DO I:=I+1; IF COPY(NM,1,I-1)=N THEN BEGIN WRITELN(NM,' ',PNO); FLAG:=TRUE; END; END; CLOSE(TELFILE); IF FLAG=FALSE THEN WRITELN('NAME NOT FOUND'); GOTOXY(1,24); WRITE('INPUT SPACEBAR TO CONTINUE:'); REPEAT UNTIL READKEY=' '; END; PROCEDURE SURNAME; VAR A:INTEGER; BEGIN FLAG:=FALSE; CLRSCR; WRITE('INPUT SURNAME OF PERSON:'); READLN(N); RESET(TELFILE); WHILE NOT EOF(TELFILE) DO BEGIN READLN(TELFILE,PNO,NM); A:=LENGTH(NM); I:=2; WHILE COPY(NM,I,1) <> ' ' DO I:=I+1; IF COPY(NM,I+1,A-I)=N THEN BEGIN WRITELN(NM,' ',PNO); FLAG:=TRUE; END; END; IF FLAG=FALSE THEN WRITE('NAME NOT FOUND'); GOTOXY(1,24); WRITE('PRESS SPACEBAR TO CONTINUE:'); REPEAT UNTIL READKEY=' '; CLOSE(TELFILE); END; PROCEDURE FIRSTLETTER; BEGIN I:=1; FLAG:=FALSE; CLRSCR; WRITE('INPUT FIRST LETTER OF NAME OF PERSON:'); READLN(N); RESET(TELFILE); WHILE NOT EOF(TELFILE) DO BEGIN READLN(TELFILE,PNO,NM); IF COPY(NM,2,1)=N THEN BEGIN WRITELN(NM,' ',PNO); I:=I+1; FLAG:=TRUE; END; IF TRUNC(I/20)=I/20 THEN BEGIN WRITELN; WRITELN; WRITE('Press SPACEBAR to continue:'); REPEAT UNTIL READKEY=' '; CLRSCR; END; END; IF FLAG=FALSE THEN WRITE('NAMES NOT FOUND'); GOTOXY(1,24); WRITE('PRESS SPACEBAR TO CONTINUE:'); REPEAT UNTIL READKEY=' '; CLOSE(TELFILE); END; BEGIN ASSIGN(TELFILE,'TELFIL1'); ASSIGN(T,'T'); REPEAT A: CLRSCR; GOTOXY(34,1); WRITELN('MAIN OPTIONS'); FOR I:= 1 TO 80 DO WRITE('-'); GOTOXY(25,4); WRITE('1)VIEWING NAMES AND TELEPHONE NUMBERS'); GOTOXY(25,5); WRITE('2)SEARCHING FOR A RECORD'); GOTOXY(25,6); WRITE('3)ADDING A RECORD'); GOTOXY(25,7); WRITE('4)DELETING A RECORD'); GOTOXY(25,8); WRITE('5)CHANGING A NUMBER'); GOTOXY(25,9); WRITE('6)CREATING NEW DIRECTORY'); GOTOXY(25,10); WRITELN('7)EXIT'); WRITELN; WRITE('ENTER YOUR CHOICE:'); READLN(CH); CLRSCR; CASE CH OF 1:BEGIN {VIEW LIST} RESET(TELFILE); I:=0; WHILE NOT EOF(TELFILE) DO BEGIN READLN(TELFILE,PNO,NM); WRITE(NM); GOTOXY(40,(I MOD 20)+1); WRITELN(PNO); I:=I+1; IF TRUNC(I/20)=I/20 THEN BEGIN WRITELN; WRITELN; WRITE('Press SPACEBAR to continue:'); REPEAT UNTIL READKEY=' '; CLRSCR; END; END; WRITELN; WRITE('Press SPACEBAR to continue:'); REPEAT UNTIL READKEY=' '; CLOSE(TELFILE); END; 2:BEGIN REPEAT CLRSCR; {SEARCH LIST} GOTOXY(34,1); WRITELN('YOUR OPTIONS'); FOR I:=1 TO 80 DO WRITE('-'); GOTOXY(22,4); WRITE('1)SEARCH FOR NUMBER GIVEN FULL NAME'); GOTOXY(22,6); WRITE('2)SEARCH FOR NAME GIVEN NUMBER'); GOTOXY(22,8); WRITE('3)SEARCH FOR NUMBER GIVEN ONLY FIRST NAME'); GOTOXY(22,10); WRITE('4)SEARCH FOR NUMBER GIVEN ONLY SURNAME'); GOTOXY(22,12); WRITE('5)SEARCH FOR NUMBER GIVEN FIRST LETTER OF NAME'); GOTOXY(22,14); WRITELN('6)MAIN OPTIONS'); WRITELN; WRITE('ENTER YOUR CHOICE:'); READLN(CH); CASE CH OF 1:FULLNAME; 2:NUMBER; 3:FIRSTNAME; 4:SURNAME; 5:FIRSTLETTER; 6:BEGIN CH:=7; GOTO A; END; END; UNTIL CH=7; END; 3:BEGIN {ADDING A RECORD} APPEND(TELFILE); WRITE('HOW MANY NEW RECORDS?'); READLN(C); FOR I:= 1 TO C DO BEGIN WRITE('INPUT NAME:'); READLN(NM); NM:=' '+NM; WRITE('INPUT NUMBER:'); READLN(PNO); WRITELN(TELFILE,PNO,NM); INC(FILELENGTH); END; CLOSE(TELFILE); END; 4:BEGIN {DELETE A RECORD} FLAG:=FALSE; REWRITE(T); RESET(TELFILE); WRITE('ENTER NAME OF PERSON:'); READLN(N); N:=' '+N; WHILE NOT EOF(TELFILE) DO BEGIN READLN(TELFILE,PNO,NM); IF NM<>N THEN WRITELN(T,PNO,NM) ELSE FLAG:=TRUE; END; CLOSE(T); CLOSE(TELFILE); IF FLAG=FALSE THEN WRITE('NAME NOT FOUND') ELSE BEGIN RESET(T); REWRITE(TELFILE); WHILE NOT EOF(T) DO BEGIN READLN(T,PNO,NM); WRITELN(TELFILE,PNO,NM); END; WRITE('RECORD DELETED'); CLOSE(T); CLOSE(TELFILE); END; DELAY(2000); END; 5:BEGIN {CHANGING NUMBER} FLAG:=FALSE; WRITE('INPUT NUMBER TO BE CHANGED:'); READLN(NO); RESET(TELFILE); REWRITE(T); WHILE ((FLAG=FALSE) AND (NOT EOF(TELFILE))) DO BEGIN READLN(TELFILE,PNO,NM); IF PNO=NO THEN BEGIN FLAG:=TRUE; WRITE('INPUT NEW NUMBER:'); READLN(NO); PNO:=NO; END; WRITELN(T,PNO,NM); END; IF FLAG=FALSE THEN WRITELN('NUMBER NOT FOUND!'); DELAY(10000); CLOSE(TELFILE); CLOSE(T); REWRITE(TELFILE); RESET(T); WHILE NOT EOF(T) DO BEGIN READLN(T,PNO,NM); WRITELN(TELFILE,PNO,NM); END; CLOSE(T); CLOSE(TELFILE); END; 6:BEGIN {CREATING NEW DIRECTORY} CLRSCR; REWRITE(TELFILE); WRITELN('INAUGURATE THE NEW DIRECTORY BY ENTERING THE FIRST RECORD:'); WRITELN; WRITE('INPUT NAME:'); READLN(NM); NM:=' '+NM; WRITE('INPUT NUMBER:'); READLN(PNO); WRITELN(TELFILE,PNO,NM); CLOSE(TELFILE); WRITELN; WRITE('THE REST OF THE DIRECTORY CAN BE CREATED USING THE ''ADDING A RECORD'' OPTION FROM MAIN MENU.'); GOTOXY(1,24); WRITE('PRESS SPACEBAR TO CONTINUE:'); REPEAT UNTIL READKEY=' '; END; END; UNTIL CH=7; END.