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.