|
- 5 RESET
- 9 PRINT TAB(21);
- 10 PRINT "DIRECTORY"
- 19 PRINT TAB(7);
- 20 PRINT "CHOOSE ONE OF THE FOLLOWING BY NUMBER:"
- 29 PRINT TAB(10);
- 30 PRINT "1. EXAMINE a record on file"
- 39 PRINT TAB(10);
- 40 PRINT "2. ADD a record to the file"
- 49 PRINT TAB(10);
- 50 PRINT "3. DELETE a record from the file"
- 59 PRINT TAB(10);
- 60 PRINT "4. PRINT OUT the entire file"
- 69 PRINT TAB(21);
- 70 INPUT "Input #: ",CHOICE
- 72 IF CHOICE<1 THEN 70
- 73 IF CHOICE>4 THEN 70
- 75 ON CHOICE GOTO 80, 120, 130, 170
- 80 MATCH=0
- 81 GOSUB 600
- 83 IF MATCH = 0 THEN 9
- 84 LAST.NAME$ = L$
- 85 FIRST.NAME$ = F$
- 86 STREET$ = S$
- 87 CITY$ = C$
- 88 STATE$ = ST$
- 89 ZIP$ = Z$
- 90 TELEPHONE$ = T$
- 92 GOSUB 300
- 93 IF MID$(RESPONSE$,1,1)="N" THEN 9
- 94 GOSUB 200
- 95 GOSUB 300
- 96 IF MID$(RESPONSE$,1,1)="Y" THEN 94
- 97 IF L$+F$ <>LAST.NAME$+FIRST.NAME$ THEN 112
- 99 OPEN "R",1,"DIRECTRY.BAS",104
- 100 FIELD #1,20 AS L$,20 AS F$,25 AS S$,20 AS C$,2 AS ST$,5 AS Z$,12 AS T$
- 101 LSET L$ = LAST.NAME$
- 102 LSET F$ = FIRST.NAME$
- 103 LSET S$ = STREET$
- 104 LSET C$ = CITY$
- 105 LSET ST$ = STATE$
- 106 LSET Z$ = ZIP$
- 107 LSET T$ = TELEPHONE$
- 108 PUT #1, RECORD.NUMBER
- 109 CLOSE #1
- 110 GOTO 9
- 112 PRINT "LAST AND FIRST NAMES MAY NOT BE CHANGED."
- 114 PRINT "YOUR MUST DELETE THE OLD RECORD AND THEN"
- 116 PRINT "ADD THE NEW ONE."
- 118 INPUT "PRESS RETURN TO CONTINUE",Y$
- 119 GOTO 9
- 120 GOSUB 200
- 122 GOSUB 300
- 124 IF MID$(RESPONSE$,1,1)="Y" THEN 120
- 126 GOSUB 400
- 128 GOTO 9
- 130 GOSUB 500
- 132 GOTO 9
- 170 OPEN "R", 1,"DIRECTRY.BAS",104
- 172 FIELD #1, 104 AS ENTIRE.RECORD$
- 174 LPRINT "DIRECTORY": LPRINT
- 176 GET #1
- 177 IF EOF(1)=-1 THEN 192
- 178 LPRINT MID$(ENTIRE.RECORD$,21,20)
- 179 LPRINT MID$(ENTIRE.RECORD$,1,20)
- 180 LPRINT MID$(ENTIRE.RECORD$,41,25)
- 182 LPRINT MID$(ENTIRE.RECORD$,66,20)
- 184 LPRINT MID$(ENTIRE.RECORD$,86,2)
- 186 LPRINT MID$(ENTIRE.RECORD$,88,5)
- 188 LPRINT MID$(ENTIRE.RECORD$,93,12)
- 189 LPRINT: LPRINT: LPRINT
- 190 GOTO 176
- 192 CLOSE #1
- 194 GOTO 9
- 200 REM ********** INPUT ROUTINE **********
- 202 PRINT CHR$(26)
- 204 GOSUB 244
- 206 PRINT TAB(21); "DIRECTORY"
- 208 PRINT TAB(12); "PLEASE SUPPLY THE FOLLOWING:"
- 210 GOSUB 244
- 212 PRINT TAB(8);
- 214 INPUT "Last Name: ",LAST.NAME$
- 216 PRINT TAB(8);
- 218 INPUT "First Name: ",FIRST.NAME$
- 219 GOSUB 700
- 220 PRINT TAB(8);
- 222 INPUT "Street Address: ",STREET$
- 224 PRINT TAB(8);
- 226 INPUT "City: ",CITY$
- 228 PRINT TAB(8);
- 230 INPUT "State (ex: NY): ",STATE$
- 232 PRINT TAB(8);
- 234 INPUT "Zip Code: ",ZIP$
- 236 PRINT TAB(8);
- 238 INPUT "Telephone (###-####): ",TELEPHONE$
- 240 GOSUB 244
- 242 RETURN
- 244 FOR I = 1 TO 5
- 246 PRINT
- 248 NEXT I
- 250 RETURN
- 300 REM ************* OUTPUT ROUTINE **********
- 302 PRINT CHR$(26)
- 304 GOSUB 336
- 306 PRINT TAB(21);"DIRECTORY"
- 308 GOSUB 336
- 310 PRINT TAB(8); "Last Name: "; LAST.NAME$
- 312 PRINT TAB(8); "First Name: "; FIRST.NAME$
- 314 PRINT TAB(8); "Street Address: "; STREET$
- 316 PRINT TAB(8); "City: "; CITY$
- 318 PRINT TAB(8); "State: "; STATE$
- 320 PRINT TAB(8); "Zip Code: "; ZIP$
- 322 PRINT TAB(8); "Tel (###-####): "; TELEPHONE$
- 324 GOSUB 336
- 325 REM PRINT "DO YOU WISH TO MAKE ANY CHANGES"; RESPONSE$
- 326 INPUT "DO YOU WISH TO MAKE ANY CHANGES"; RESPONSE$
- 328 IF MID$(RESPONSE$,1,1) = "Y" THEN 334
- 330 IF MID$(RESPONSE$,1,1) <> "N" THEN 326
- 332 RETURN
- 334 GOTO 332
- 336 FOR I = 1 TO 5
- 338 PRINT
- 340 NEXT I
- 342 RETURN
- 400 REM ************* ADD ROUTINE *************
- 402 PRINT CHR$(26)
- 404 MARKER = 0
- 406 FULL.NAME$ = LAST.NAME$ + FIRST.NAME$
- 408 OPEN "R", 1, "DIRECTRY.BAS", 104
- 410 OPEN "R", 2, "UPDATE.BAS", 104
- 412 FIELD #1,20 AS L$,20 AS F$,25 AS S$,20 AS C$,2 AS ST$,5 AS Z$,12 AS T$
- 414 FIELD #2,20 AS A$,20 AS B$,25 AS D$,20 AS E$,2 AS G$,5 AS H$,12 AS I$
- 416 GET #1
- 418 IF EOF(1) = -1 THEN 452
- 420 IF MARKER = 1 THEN 434
- 422 GOSUB 462
- 424 IF F.N$ <> FULL.NAME$ THEN 434
- 426 PRINT TAB(11);"THAT RECORD IS ALREADY ON FILE."
- 428 INPUT "PRESS RETURN TO CONTINUE.",Y$
- 429 CLOSE #1: CLOSE #2
- 430 KILL "UPDATE.BAS"
- 432 GOTO 460
- 434 LSET A$ = L$
- 436 LSET B$ = F$
- 438 LSET D$ = S$
- 440 LSET E$ = C$
- 442 LSET G$ = ST$
- 444 LSET H$ = Z$
- 446 LSET I$ = T$
- 448 PUT #2
- 450 GOTO 416
- 452 IF MARKER = 1 THEN 455
- 454 GOSUB 466
- 455 CLOSE #1: CLOSE #2
- 456 KILL "DIRECTRY.BAS"
- 458 NAME "UPDATE.BAS" AS "DIRECTRY.BAS"
- 460 CLOSE #1: CLOSE #2: RETURN
- 462 IF F.N$ <=FULL.NAME$ THEN 482
- 466 LSET A$ = LAST.NAME$
- 468 LSET B$ = FIRST.NAME$
- 470 LSET D$ = STREET$
- 472 LSET E$ = CITY$
- 474 LSET I$ = TELEPHONE$
- 476 LSET H$ = ZIP$
- 478 LSET I$ = TELEPHONE$
- 480 PUT #2: MARKER = 1
- 482 RETURN
- 500 REM *********** DELETE ROUTINE *********
- 502 MARKER = 0
- 504 PRINT CHR$(26)
- 506 PRINT TAB(7);
- 508 PRINT "FOR THE RECORD THAT YOU WISH TO DELETE:"
- 510 PRINT TAB(15);
- 516 INPUT "FIRST NAME: ",FIRST.NAME$
- 517 GOSUB 700
- 518 FULL.NAME$ = LAST.NAME$ + FIRST.NAME$
- 520 OPEN "R", 1, "DIRECTRY.BAS", 104
- 522 OPEN "R", 2, "UPDATE.BAS", 104
- 524 FIELD #1, 40 AS F.N$, 64 AS REST$
- 526 FIELD #2, 40 AS F.N2$, 64 AS REST2$
- 528 GET #1
- 530 IF EOF(1)=-1 THEN 546
- 532 IF MARKER = 0 THEN IF F.N$ = FULL.NAME$ THEN 542
- 534 LSET F.N2$ = F.N$
- 536 LSET REST2$ = REST$
- 538 PUT #2
- 540 GOTO 528
- 542 MARKER = 1
- 544 GOTO 528
- 546 IF MARKER = 1 THEN 555
- 548 PRINT: PRINT: PRINT TAB(17);
- 550 PRINT "RECORD NOT ON FILE."
- 552 PRINT: PRINT TAB(14);
- 554 INPUT "PRESS RETURN TO CONTINUE",Y$
- 555 CLOSE #1: CLOSE #2
- 556 KILL "DIRECTRY.BAS"
- 558 NAME "UPDATE.BAS" AS "DIRECTRY.BAS"
- 560 CLOSE #1: CLOSE #2: RETURN
- 600 REM ********** SEARCH ROUTINE **********
- 602 PRINT CHR$(26)
- 604 OPEN "R", 1, "DIRECTRY.BAS", 104
- 606 FIELD #1,20 AS L$,20 AS F$,25 AS S$,20 AS C$,2 AS ST$,5 AS Z$,12 AS T$
- 608 GOSUB 652
- 610 PRINT TAB(12);
- 612 PRINT "PLEASE SUPPLY THE FOLLOWING:"
- 614 GOSUB 652
- 616 PRINT TAB(15);
- 618 INPUT "LAST NAME: ";LAST.NAME$
- 620 PRINT TAB(15);
- 622 INPUT "FIRST NAME: ";FIRST.NAME$
- 623 GOSUB 700
- 624 RECORD.NUMBER = 1
- 626 GET #1, RECORD.NUMBER
- 628 IF L$ <> LAST.NAME$ THEN 634
- 630 IF F$ <> FIRST.NAME$ THEN 634
- 631 MATCH = 1
- 632 CLOSE #1: RETURN
- 634 IF EOF(1) <> -1 THEN 648
- 636 GOSUB 652
- 638 PRINT TAB(17);
- 640 PRINT "RECORD NOT ON FILE."
- 642 PRINT: PRINT TAB(14);
- 644 PRINT "PRESS RETURN TO CONTINUE.",Y$
- 646 GOTO 632
- 648 RECORD.NUMBER = RECORD.NUMBER + 1
- 650 GOTO 626
- 652 FOR P = 1 TO 6
- 654 PRINT
- 656 NEXT P
- 658 RETURN
- 700 SPACER$=" "
- 710 LAST.NAME$ = LAST.NAME$+SPACER$
- 720 LAST.NAME$ = MID$(LAST.NAME$,1,20)
- 730 FIRST.NAME$ = FIRST.NAME$+SPACER$
- 740 FIRST.NAME$ = MID$(FIRST.NAME$,1,20)
- 750 RETURN
|