home *** CD-ROM | disk | FTP | other *** search
/ 17 Bit Software 1: Collection A / 17Bit_Collection_A.iso / files / 35.dms / 35.adf / addbook.bas < prev    next >
BASIC Source File  |  1988-05-22  |  10KB  |  246 lines

  1. 10    SCREEN 1,3:SCNCLR
  2. 15    FOR X=1 TO 6:COLOR(X)=0:NEXT X
  3. 20    PRINT SPC(29);:PRINT INVERSE(1);" A D D R E S S  B O O K "
  4. 21    GOSUB 11000
  5. 22    ON ERROR GOTO 10000
  6. 25    OPEN "R",#3,"ADDRESS" ,72
  7. 26    FIELD #3,15 AS FIRST$,15 AS LAST$,30 AS ADDRESS$,12 AS PHONE$
  8. 27    RGET #3,1
  9. 28    NUMBER=CVI(FIRST$)
  10. 29    ON ERROR GOTO 0
  11. 30    FOR X=1 TO 6:READ MENU$(X):NEXT X
  12. 35    SCNCLR
  13. 36    CHO=0
  14. 40    DATA "    FIND    "," PRINT LIST ","    ADD     ","   DELETE   ","   CHANGE   ","    QUIT    "
  15. 45    PRINT AT (20,3);"MAKE SURE YOU QUIT OR THE FILE WON'T BE CLOSED"
  16. 46    PRINT AT (20,4);"              ----"
  17. 50    PRINT AT (35,6);MENU$(1):PRINT AT (35,8);MENU$(2):PRINT AT(35, 10);MENU$(3):PRINT AT (35,12);MENU$(4):PRINT AT (35,14);MENU$(5):PRINT AT (35,16);MENU$(6)
  18. 60    PENA 3:BOX(200,35;260,48),1
  19. 61    PENA 4:BOX(200,51;260,64),1
  20. 62    PENA 5:BOX(200,67;260,80),1
  21. 63    PENA 6:BOX(200,83;260,96),1
  22. 64    PENA 7:BOX(200,99;260,112),1
  23. 65    PENA 9:BOX(200,115;260,128),1
  24. 70    ASK MOUSE X%,Y%,B%
  25. 72    IF X%>=200 AND X%<=260 AND Y%>=35 AND Y%<=48 AND B%=4 THEN COL=1:GOTO 200
  26. 73    IF X%>=200 AND X%<=260 AND Y%>=51 AND Y%<=64 AND B%=4 THEN COL=2:GOTO 200
  27. 74    IF X%>=200 AND X%<=260 AND Y%>=67 AND Y%<=80 AND B%=4 THEN COL=3:GOTO 200
  28. 75    IF X%>=200 AND X%<=260 AND Y%>=83 AND Y%<=96 AND B%=4 THEN COL =4:GOTO 200
  29. 76    IF X%>=200 AND X%<=260 AND Y%>=99 AND Y%<=112 AND B%=4 THEN COL=5:GOTO 200
  30. 77    IF X%>=200 AND X%<=260 AND Y%>= 115 AND Y%<=128 AND B%=4 THEN COL =6 :GOTO 200
  31. 80    GOTO 70
  32. 200   REM **************************************
  33. 210   REM * MAKE YOUR CHOICE                   *
  34. 220   REM **************************************
  35. 230   ON COL GOTO 1000,2000,3000,4000,5000,6000
  36. 240   GOTO 35
  37. 1000  REM ******************************************
  38. 1010  REM *  FIND                                  *
  39. 1020  REM ******************************************
  40. 1021  CHO=0
  41. 1030  WINDOW #1,320,10,640,100,"FIND IT"
  42. 1040  CMD 1
  43. 1045  PENA 1:BOX(30,0;65,13),1
  44. 1046  PENA 2:BOX(30,16;65,29),1
  45. 1047  PENA 3:BOX(30,32;65,44),1
  46. 1048  PENA 4:BOX(30,47;65,60),1
  47. 1049  PENA 5:BOX(30,63;65,76),1
  48. 1050  PRINT AT(10,1);" FIRST NAME"
  49. 1060  PRINT AT(10,3);" LAST  NAME"
  50. 1070  PRINT AT(10,5);" ADDRESS   "
  51. 1080  PRINT AT(10,7);" PHONE NUMBER"
  52. 1090  PRINT AT(10,9);" RETURN TO MAIN MENU"
  53. 1100  REM
  54. 1110  ASK MOUSE X%,Y%,B%
  55. 1111  IF X% >=30 AND X%<=65 AND Y%>=0 AND Y%<=13 AND B%=4 THEN CHO=1
  56. 1112  IF X%>=30 AND X%<=65 AND Y%>=16 AND Y%<=29 AND B%=4 THEN CHO=2
  57. 1113  IF X%>=30 AND X%<=65 AND Y%>=32 AND Y%<=44 AND B%=4 THEN CHO=3
  58. 1114  IF X%>=30 AND X%<=65 AND Y%>=47 AND Y%<=60 AND B%=4 THEN CHO=4
  59. 1115  IF X%>=30 AND X%<=65 AND Y%>=63 AND Y%<=76 AND B%=4 THEN CHO=5
  60. 1120  IF CHO<1 OR CHO>5 THEN 1110
  61. 1140  ON CHO GOTO 1200,1300,1400,1500,1600
  62. 1150  GOTO 1110
  63. 1200  REM **** FIRST NAME
  64. 1201  START=1
  65. 1210  CLOSE 1:CMD 0
  66. 1220  SCNCLR
  67. 1230  INPUT"FIRST NAME TO SEARCH FOR";FIR$
  68. 1240  FOR SEARCH=START TO NUMBER
  69. 1250  RGET #3,SEARCH
  70. 1260  IF  LEFT$(FIRST$,(LEN(FIR$))) =FIR$ THEN FOUND=SEARCH:FOUNDFLAG=1:GOTO 1273
  71. 1270  NEXT SEARCH
  72. 1271  IF ONCE=0 THEN 1275 ELSE 1294
  73. 1273  IF FOUNDFLAG=1 THEN FOUNDFLAG=0:ONCE=1:GOTO 1280
  74. 1275  SCNCLR
  75. 1276  PRINT "COULDN'T LOCATE ";FIR$:SLEEP 990000:CHO=0:GOTO 1000
  76. 1280  PRINT FOUND,"FIRST NAME: ";FIRST$
  77. 1290  PRINT SPC(15);"LAST  NAME: ";LAST$
  78. 1291  PRINT SPC(15);"ADDRESS   : ";ADDRESS$
  79. 1292  PRINT SPC(15);"PHONE #   : ";PHONE$
  80. 1293  START=FOUND+1:PRINT:GOTO 1240
  81. 1294  PRINT"HIT LEFT MOUSE BUTTON"
  82. 1295  ASK MOUSE X%,Y%,B%:IF B%<>4 THEN 1295
  83. 1296  ONCE=0:CHO=0:GOTO 1000
  84. 1300  REM **** LAST NAME 
  85. 1301  START=1
  86. 1310  CLOSE 1:CMD 0
  87. 1320  SCNCLR
  88. 1330  INPUT "LAST NAME TO SEARCH FOR";LAS$
  89. 1340  FOR SEARCH=START TO NUMBER
  90. 1350  RGET #3,SEARCH
  91. 1360  IF LEFT$(LAST$,(LEN(LAS$)))=LAS$ THEN FOUND=SEARCH:FOUNDFLAG=1:GOTO 1373
  92. 1370  NEXT SEARCH
  93. 1371  IF ONCE=0 THEN 1375 ELSE 1394
  94. 1373  IF FOUNDFLAG=1 THEN FOUNDFLAG=0:ONCE=1:GOTO 1380
  95. 1375  SCNCLR
  96. 1376  PRINT "COULDN'T LOCATE ";LAS$:SLEEP 990000:CHO=0:GOTO 1000
  97. 1380  PRINT FOUND,"FIRST NAME: ";FIRST$
  98. 1390  PRINT SPC(15);"LAST NAME: ";LAST$
  99. 1391  PRINT SPC(15);"ADDRESS  : ";ADDRESS$
  100. 1392  PRINT SPC(15);"PHONE #  : ";PHONE$
  101. 1393  START=FOUND+1:PRINT:GOTO 1340
  102. 1394  PRINT "HIT LEFT MOUSE BUTTON"
  103. 1395  ASK MOUSE X%,Y%,B%:IF B%<>4 THEN 1395
  104. 1396  ONCE=0:CHO=0:GOTO 1000
  105. 1400  REM **** ADDRESS
  106. 1401  START=1
  107. 1410  CLOSE 1:CMD 0
  108. 1420  SCNCLR
  109. 1430  INPUT "ADDRESS TO SEARCH FOR";ADD$
  110. 1440  FOR SEARCH=START TO NUMBER
  111. 1450  RGET #3,SEARCH
  112. 1460  IF LEFT$(ADDRESS$,(LEN(ADD$)))=ADD$ THEN FOUND=SEARCH:FOUNDFLAG=1:GOTO 1473
  113. 1470  NEXT SEARCH
  114. 1471  IF ONCE=0 THEN 1475 ELSE 1494
  115. 1473  IF FOUNDFLAG=1 THEN FOUNDFLAG=0 :ONCE=1:GOTO 1480
  116. 1475  SCNCLR
  117. 1476  PRINT "COULDN'T LOCATE ";ADD$:SLEEP 990000:CHO=0:GOTO 1000
  118. 1480  PRINT FOUND,"FIRST NAME: ";FIRST$
  119. 1490  PRINT SPC(15);"LAST NAME: ";LAST$
  120. 1491  PRINT SPC(15);"ADDRESS  : ";ADDRESS$
  121. 1492  PRINT SPC(15);"PHONE #  : ";PHONE$ 
  122. 1493  START=FOUND+1:PRINT:GOTO 1440
  123. 1494  PRINT"HIT LEFT MOUSE BUTTON"
  124. 1495  ASK MOUSE X%,Y%,B%:IF B%<> 4 THEN 1495
  125. 1496  ONCE=0:CHO=0:GOTO 1000
  126. 1500  REM **** PHONE NUMBER
  127. 1501  START=1
  128. 1510  CLOSE 1:CMD 0
  129. 1520  SCNCLR
  130. 1530  INPUT"PHONE NUMBER TO SEARCH FOR";PHO$
  131. 1540  FOR SEARCH=START TO NUMBER
  132. 1550  RGET #3,SEARCH
  133. 1560  IF LEFT$(PHONE$,(LEN(PHO$)))=PHO$ THEN FOUND=SEARCH:FOUNDFLAG=1:GOTO 1573
  134. 1570  NEXT SEARCH
  135. 1571  IF ONCE=0 THEN 1575 ELSE 1594
  136. 1573  IF FOUNDFLAG=1 THEN FOUNDFLAG=0 :ONCE=1:GOTO 1580
  137. 1575  SCNCLR
  138. 1576  PRINT "COULDN'T LOCATE ";PHO$:SLEEP 990000:CHO=0:GOTO 1000
  139. 1580  PRINT FOUND, "FIRST NAME : ";FIRST$
  140. 1590  PRINT SPC(15);"LAST NAME  : ";LAST$
  141. 1591  PRINT SPC(15);"ADDRESS    : ";ADDRESS$
  142. 1592  PRINT SPC(15);"PHONE #    : ";PHONE$
  143. 1593  START=FOUND+1:PRINT:GOTO 1540
  144. 1594  PRINT "HIT LEFT MOUSE BUTTON"
  145. 1595  ASK MOUSE X%,Y%,B%:IF B%<> 4 THEN 1595
  146. 1596  ONCE=0:CHO=0:GOTO 1000
  147. 1600  REM **** RETURN TO MAIN MENU
  148. 1610  CLOSE 1:CMD 0
  149. 1620  SCNCLR:GOTO 35
  150. 2000  REM ******************************************
  151. 2010  REM * PRINT LIST                             *
  152. 2020  REM ******************************************
  153. 2030  CLOSE 1:CMD 0:SCNCLR
  154. 2040  INPUT"(S)creen or (P)rinter";file$
  155. 2050  IF FILE$="S" OR FILE$="s" then FILE=1:GOTO 2080
  156. 2060  IF FILE$="P" OR FILE$="p" THEN FILE=2:GOTO 2080
  157. 2070  GOTO 2030
  158. 2080  REM
  159. 2090  OPEN "O",#2,"PRT:"
  160. 2100  SCNCLR
  161. 2110  IF FILE=2 THEN PRINT #FILE,"### FIRST          LAST           ADDRESS                       PHONE       "
  162. 2111  IF FILE=1 THEN PRINT "### FIRST          LAST           ADDRESS                       PHONE"
  163. 2120  PRINT
  164. 2130  FOR X=2 TO NUMBER
  165. 2135  RGET #3,X
  166. 2136  IF LEFT$(FIRST$,7)="NOTHING" THEN 2150
  167. 2140  IF FILE=2 THEN PRINT #FILE,USING"###";X;:PRINT #FILE," ";:PRINT #FILE,FIRST$;LAST$;ADDRESS$;PHONE$
  168. 2141  IF FILE=1 THEN PRINT USING"###";X;:PRINT " ";:PRINT FIRST$;LAST$;ADDRESS$;PHONE$
  169. 2150  NEXT X
  170. 2160  PRINT:PRINT"HIT LEFT MOUSE BUTTON"
  171. 2165  CLOSE 2:CLOSE 1
  172. 2170  ASK MOUSE X%,Y%,B%:IF B%<> 4 THEN 2170
  173. 2171  SCNCLR:GOTO 35
  174. 3000  REM ******************************************
  175. 3010  REM * ADD                               *
  176. 3020  REM ******************************************
  177. 3030  CLOSE 1:CMD 0:SCNCLR
  178. 3040  INPUT "ENTER FIRST NAME TO ADD            : ",FIR$
  179. 3050  INPUT "ENTER LAST NAME TO ADD             : ",LAS$
  180. 3060  INPUT "ENTER ADDRESS TO ADD               : ",ADD$
  181. 3070  INPUT "ENTER PHONE NUMBER TO ADD          : ",PHO$
  182. 3071  FOR SEARCH=2 TO NUMBER:RGET #3,SEARCH
  183. 3072  IF LEFT$(FIRST$,7)="NOTHING"   THEN RECORD=SEARCH:NUMBER=NUMBER-1:GOTO 3080
  184. 3073  NEXT SEARCH
  185. 3074  DIDNT=1
  186. 3075  NUMBER=NUMBER+1:RECORD=NUMBER
  187. 3080  LSET FIRST$=FIR$:LSET LAST$=LAS$:LSET ADDRESS$=ADD$:LSET PHONE$=PHO$
  188. 3081  IF DIDNT=1 THEN DIDNT=0 :GOTO 3090
  189. 3082  NUMBER=NUMBER+1
  190. 3090  RPUT #3,RECORD
  191. 3092  LSET FIRST$=MKI$(NUMBER):LSET LAST$="NOTHING":LSET ADDRESS$="NOTHING":LSET PHONE$="NOTHING":RPUT #3,1
  192. 3093  SCNCLR:GOTO 35
  193. 3200  REM SCNCLR:PRINT FIRST$;"  ";LAST$;" IS ALREADY IN HERE":SLEEP 990000:SCNCLR:GOTO 35 
  194. 4000  REM **************************************
  195. 4010  REM * DELETE                             *
  196. 4020  REM **************************************
  197. 4030  CLOSE 1:CMD 0:SCNCLR
  198. 4040  INPUT"RECORD NUMBER TO DELETE";RECORD
  199. 4041  IF RECORD=0 THEN SCNCLR:GOTO 35
  200. 4050  IF RECORD >NUMBER THEN PRINT"HIGHEST RECORD IS";NUMBER:GOTO 4040
  201. 4060  RGET #3,RECORD
  202. 4070  PRINT "THAT RECORD IS : ";FIRST$
  203. 4080  PRINT "                 ";LAST$
  204. 4090  PRINT "                 ";ADDRESS$
  205. 4100  PRINT "                 ";PHONE$
  206. 4110  PRINT:INPUT"DO YOU STILL WANT TO DELETE THIS RECORD";QUEST$
  207. 4120  IF QUEST$="Y" OR QUEST$="y" THEN 4140
  208. 4130  GOTO 4030
  209. 4140  LSET FIRST$="NOTHING":RPUT #3,RECORD
  210. 4150  PRINT:PRINT"THAT RECORD IS NOW DELETED"
  211. 4160  SLEEP 990000:SCNCLR:GOTO 35
  212. 5000  REM **************************************
  213. 5010  REM * CHANGE                             *
  214. 5020  REM **************************************
  215. 5030  CLOSE 1:CMD 0:SCNCLR
  216. 5040  INPUT"RECORD NUMBER TO CHANGE";RECORD
  217. 5050  IF RECORD=0 THEN SCNCLR:GOTO 35
  218. 5060  IF RECORD>NUMBER THEN PRINT "HIGHEST RECORD IS";NUMBER:GOTO 5040
  219. 5070  RGET #3,RECORD
  220. 5080  PRINT "1.  FIRST     : ";FIRST$
  221. 5090  PRINT "2.  LAST      : ";LAST$
  222. 5100  PRINT "3.  ADDRESS   : ";ADDRESS$
  223. 5110  PRINT "4.  PHONE$    : ";PHONE$
  224. 5120  PRINT:PRINT INVERSE(1) "ENTER CHOICE TO CHANGE";:INPUT " ",CHAN
  225. 5130  IF CHAN=0 THEN 5030
  226. 5140  IF CHAN=1 THEN PRINT:INPUT"NEW FIRST NAME";FIR$:LSET FIRST$=FIR$
  227. 5150  IF CHAN=2 THEN PRINT:INPUT"NEW LAST NAME ";LAS$:LSET LAST$=LAS$
  228. 5160  IF CHAN=3 THEN PRINT:INPUT"NEW ADDRESS   ";ADD$:LSET ADDRESS$=ADD$
  229. 5170  IF CHAN=4 THEN PRINT:INPUT"NEW PHONE #   ";PHO$:LSET PHONE$=PHO$
  230. 5180  RPUT #3,RECORD
  231. 5190  GOTO 5030
  232. 6000  REM *************************************
  233. 6010  REM * END THE PROGRAM                   *
  234. 6020  REM *************************************
  235. 6030  CLOSE 3:CLOSE 1:CLOSE 2:CMD 0:SCNCLR
  236. 6040  FOR X= 1 TO 23:PRINT AT (X+1,X);"BYE":NEXT X:END
  237. 10000 IF ERL=25 THEN OPEN "N",#3,"ADDRESS",72:FIELD #3,15 AS FIRST$,15 AS LAST$,30 AS ADDRESS$,12 AS PHONE$
  238. 10010 LSET FIRST$=MKI$(1):RPUT #3,1
  239. 10020 RESUME 27
  240. 11000 PRINT:PRINT SPC(38);:PRINT INVERSE(1);" B Y "
  241. 11010 PRINT:PRINT SPC(31);:PRINT INVERSE(1);" T O M   M I L L E R "
  242. 11020 PRINT:PRINT SPC(22);:PRINT INVERSE(1);" V E R S I O N - 1   1 1 - 2 7 - 8 5 "
  243. 11030 PRINT:PRINT:PRINT:PRINT SPC(29);"HIT LEFT MOUSE BUTTON"
  244. 11040 ASK MOUSE X%,Y%,B%:IF B%<>4 THEN 11040
  245. 11050 return
  246.