home *** CD-ROM | disk | FTP | other *** search
/ Nibble Magazine / nib37b.dsk / TM.EDIT.bas < prev    next >
BASIC Source File  |  2023-02-26  |  5KB  |  91 lines

  1. 10  REM *********************************
  2. 20  REM *            TM.EDIT            *
  3. 30  REM *      BY ALEXANDER LAIRD       *
  4. 40  REM *     COPYRIGHT (C) 1989 BY     *
  5. 50  REM *     MINDCRAFT PUBL. CORP.     *
  6. 55  REM *      CONCORD, MA. 01742       *
  7. 60  REM *********************************
  8. 70  PRINT  CHR$(17): GOTO 510
  9. 80 :
  10. 100 : REM  [ EDIT NAME & ADDRESS ]
  11. 110  HOME : VTAB 3: PRINT "RECORD #:";N: PRINT : PRINT "NAME   :": PRINT "STREET :": PRINT "CITY   :": PRINT "STATE  :": PRINT "ZIP    :"
  12. 120  VTAB 5: FOR F = 1 TO 5: HTAB 10: PRINT A$(F): NEXT 
  13. 130  VTAB 5:CT = 0: REM  GO BACK TO THE FIRST LINE
  14. 140  FOR F = 1 TO 5
  15. 150  HTAB 10: INPUT "";F$
  16. 160  IF F$ < >""  THEN A$(F) = F$
  17. 170  VTAB F +4: HTAB 10: CALL  -868: PRINT A$(F):CT = CT + LEN(A$(F))
  18. 180  NEXT : IF CT >(82 +5)  THEN  VTAB 20: CALL  -958: PRINT "ADDRESS TOTALS MORE THAN 82 CHARACTERS.": PRINT "RE-DO THE ENTRIES TO SHORTEN THEM.": INPUT "<RETURN> TO RE-DO:";XX$: VTAB 20: CALL  -958: GOTO 130
  19. 190  VTAB 20: CALL  -868: INPUT "<RETURN> = ACCEPT... R = RE-ENTER:";XX$: IF XX$ < >""  AND XX$ < >"R"  AND XX$ < >"r"  THEN 190
  20. 200  IF XX$ = "R"  THEN  VTAB 20: CALL  -868: PRINT "PRESS RETURN TO ACCEPT EXISTING DATA": GOTO 130
  21. 210  RETURN 
  22. 220 :
  23. 230 :
  24. 240 : REM [ SAVE ADDRESS TO DISK ]
  25. 250  PRINT D$;"OPEN ADDRESSES,L87"
  26. 260  PRINT D$;"WRITE ADDRESSES,R";N
  27. 270  FOR F = 1 TO 5: PRINT A$(F): NEXT 
  28. 280  PRINT D$;"CLOSE"
  29. 290  RETURN 
  30. 300 :
  31. 310 :
  32. 320 : REM  [ READ SINGLE ADDRESS ]
  33. 330  PRINT D$;"OPEN ADDRESSES,L87"
  34. 340  PRINT D$;"READ ADDRESSES,R";N
  35. 350  FOR F = 1 TO 5: INPUT A$(F): NEXT 
  36. 360  PRINT D$;"CLOSE"
  37. 370  RETURN 
  38. 380 :
  39. 390 :
  40. 400 : REM [ SCAN/SEARCH ADDRESSES ]
  41. 410  PRINT D$;"OPEN ADDRESSES,L87"
  42. 420  FOR I = 1 TO R
  43. 430  PRINT D$;"READ ADDRESSES,R";I
  44. 440  INPUT A$(1): IF  LEFT$(A$(1),L) = N$  THEN N = I:I = R
  45. 450  NEXT I
  46. 460  PRINT D$;"CLOSE"
  47. 470  RETURN 
  48. 480 :
  49. 490 :
  50. 500 : REM  [ SETUP ]
  51. 510  HOME : VTAB 5
  52. 520  HTAB 10: PRINT "NIBBLE TINY MAILER EDIT"
  53. 530  PRINT : PRINT "THIS PROGRAM LETS YOU EDIT NAMES AND": PRINT "ADDRESSES IN YOUR RANDOM DISK FILE."
  54. 540  PRINT : PRINT "YOU'LL RETRIEVE AN ADDRESS RECORD BY": PRINT "ITS RECORD NUMBER OR BY THE NAME OF THE": PRINT "PERSON.  THEN YOU CAN CHANGE ANY ITEM"
  55. 550  PRINT "IN THE ADDRESS AND WRITE THE CORRECTED": PRINT "ADDRESS BACK INTO ITS PROPER POSITION": PRINT "IN THE FILE."
  56. 560  PRINT : PRINT "YOU'LL ALSO HAVE THE CHANCE TO RE-ENTER": PRINT "AND CORRECT ANY MISTAKES BEFORE SAVING"
  57. 570  PRINT "THE NAME AND ADDRESS TO THE DISK FILE.": PRINT : PRINT "       (CHECKING THE DISK FILE)"
  58. 580 :
  59. 590 :
  60. 600 : REM [ CHECK WHETHER FILE EXISTS ]
  61. 610 D$ =  CHR$(4)
  62. 620  ONERR  GOTO 880
  63. 630  PRINT D$;"VERIFY ADDRESSES"
  64. 640  PRINT D$;"OPEN ADDRESSES,L87"
  65. 650  PRINT D$;"READ ADDRESSES,R0": INPUT R
  66. 660  PRINT D$;"CLOSE ADDRESSES"
  67. 670  IF R = 0  THEN  HOME : VTAB 10: PRINT "THERE ARE NO RECORDS CURRENTLY IN YOUR": PRINT "ADDRESSES FILE.  PLEASE ENTER AT LEAST": PRINT "ONE ADDRESS BEFORE USING THIS PROGRAM.": HOME : END 
  68. 680  PRINT : INPUT "PRESS RETURN FOR NEXT PAGE:";XX$
  69. 690  HOME : VTAB 9: PRINT "THERE ARE ";R;" RECORDS IN THE FILE.": PRINT : PRINT "YOU CAN RETRIEVE A RECORD BY ENTERING:": PRINT : PRINT "   * A RECORD NUMBER   (OR)": PRINT : PRINT "   * A FULL OR PARTIAL PERSON'S NAME"
  70. 700  PRINT : PRINT "      FOR EXAMPLE: SAM JONES": PRINT "                   SAM JON": PRINT "                   SAM J"
  71. 710  PRINT : INPUT "PRESS RETURN TO BEGIN:";XX$
  72. 720 :
  73. 730 :
  74. 740 : REM  MAIN CONTROL LOOP
  75. 750  HOME : VTAB 8: PRINT "ENTER: RECORD #(1-";R;") OR ": PRINT "       NAME (FULL OR PARTIAL) OR": PRINT "       Q TO QUIT": PRINT : INPUT "ENTER: ";N$:N =  VAL(N$): IF  LEN(N$) = 0  THEN 750
  76. 760  IF N$ =  CHR$(113)  OR N$ =  CHR$(81)  THEN 830: REM  TEST END
  77. 770  IF N >0  AND N >R  THEN  PRINT "THAT RECORD NUMBER IS LARGER THAN THE": INPUT "FILE CONTENTS. PRESS <RETURN>:";XX$: GOTO 750
  78. 780  IF N >0  THEN  GOSUB 330: GOTO 800: REM RETRIEVE REC #
  79. 790  IF N = 0  THEN L =  LEN(N$): GOSUB 410: IF N >0  THEN  GOSUB 330: GOTO 800: REM SEARCH ON NAME
  80. 800  IF N = 0  THEN  PRINT : PRINT "A NAME MATCH WAS NOT FOUND.": INPUT "PRESS <RETURN> TO TRY AGAIN:";XX$: GOTO 750
  81. 810  GOSUB 110: REM  EDIT ADDRESS
  82. 820  GOSUB 250: REM  SAVE ADDRESS
  83. 830  HOME : VTAB 10: INPUT "<RETURN> = ENTER ANOTHER... E = END:";XX$: IF XX$ < >""  AND XX$ < >"E"  AND XX$ < >"e"  THEN 830
  84. 840  IF XX$ = "E"  THEN  PRINT "END OF ADDRESS EDIT": HOME : END 
  85. 850  GOTO 750: REM  ENTER ANOTHER
  86. 860 :
  87. 870 : REM  ERROR MESSAGE
  88. 880  POKE 216,0: REM  RESET ERROR POINTER
  89. 890  HOME : VTAB 10: PRINT "YOU HAVE ENCOUNTERED A FILE ERROR WITH": PRINT "THE ATTEMPT TO READ THE ADDRESSES FILE."
  90. 900  PRINT : PRINT "CHECK TO MAKE SURE THAT THE ADDRESSES": PRINT "FILE IS ON THIS DISK, OR SAVE A COPY": PRINT "OF THIS PROGRAM ON THE SAME DISK THAT"
  91. 910  PRINT "CONTAINS THE ADDRESSES FILE.": PRINT : PRINT "PROGRAM ENDED."