home *** CD-ROM | disk | FTP | other *** search
- REM ADDR.MASTER
- REM LR RUFFALO - 4/86
- REM -----------------------------------------
- REM Comments and/or critique welcomed.
-
- REM Send to: Lr Ruffalo
- REM 1350 W. Rincon St. Suite 'A'
- REM Corona, Ca 91720
- REM -----------------------------------------
-
- CLEAR,75000&
- CLS:OPTION BASE 1:DIM A$(550,6)
-
- ON ERROR GOTO NEWFILE
-
- LOCATE 12,20:PRINT "LOADING DATA, PLEASE WAIT . . . "
- OPEN "I", #1, "DF1:ADDR.DATA"
- WHILE NOT EOF(1)
- F=F+1
- INPUT #1, A$(F,2),A$(F,1),A$(F,3),A$(F,4),A$(F,5),A$(F,6)
- WEND
- CLOSE:ON ERROR GOTO 0
-
- START:
- CLS:R$=""
- PRINT :PRINT:PRINT:PRINT
- PRINT TAB(15)" ENTER OPTION NUMBER:":PRINT
- PRINT TAB(15)" [1] - Enter New Addresses
- PRINT TAB(15)" [2] - Print Address List
- PRINT TAB(15)" [3] - Display Address List
- PRINT TAB(15)" [4] - Edit Address List
- PRINT TAB(15)" [5] - Search Address List
- PRINT TAB(15)" [6] - Delete Address(s)
- PRINT TAB(15)" [7] - Print Labels
- PRINT TAB(15)" [8] - Re-Sort List
- PRINT TAB(15)" [9] - End Program
- PRINT:PRINT
- LINE (140,42)-(400,125),1,B
- LINE (145,45)-(395,122),1,B
- WHILE R$<"1" OR R$>"9"
- R$=INKEY$
- WEND
- CLS
- ON VAL(R$) GOTO ENTER, L.PRINT, DISPLAY, ED.IT, SEARCH
- ON VAL(R$)-5 GOTO D.LETE, LABELS, SORT.FIELD
- IF X=1 THEN SF=2:GOTO RE.SORT
- IF X=2 THEN WRITE.MAST
- END
-
- ENTER:
- F=F+1
- CLS: LOCATE 6,20
- PRINT TAB(20)"FIRST NAME > <"
- PRINT TAB(20)"LAST NAME > <"
- PRINT TAB(20)"ADDRESS NO. 1 > <"
- PRINT TAB(20)"ADDRESS NO. 2 > <"
- PRINT TAB(20)"CITY > <"
- PRINT TAB(20)"STATE > <"
- PRINT TAB(20)"ZIP CODE > <"
- FOR I=1 TO 6
- IF I=1 THEN LOCATE 15,32:PRINT"ENTER 'END' TO EXIT"
- IF I=2 THEN LOCATE 15,32:PRINT" "
- LOCATE I+5,37
- INPUT"",A$(F,I)
- A$(F,I)=UCASE$(A$(F,I))
- IF A$(F,1)="END" THEN F=F-1:GOTO START
- NEXT
- LOCATE 12,37:INPUT"", Z$
- IF Z$="" THEN Z$=" "
- CLS:LOCATE 9,30
- PRINT A$(F,1)" "A$(F,2)
- PRINT TAB(30);A$(F,3)" "A$(F,4)
- PRINT TAB(30);A$(F,5)", "A$(F,6)" "Z$
- LOCATE 15,30:PRINT "1=ACCEPT 2=REJECT"
- 20 R$=INKEY$:IF R$="" THEN 20
- IF R$<"1" OR R$>"2" THEN 20
- IF R$="2" THEN F=F-1:GOTO ENTER
- X=1
- A$(F,6)=A$(F,6)+" "+Z$
- GOTO ENTER
-
- L.PRINT:
- P$="\ \ \ \ \ \"
- P$=P$+"\ \\ \"
- N$="###"
- CLS:LOCATE 12,20:PRINT"ALIGN PAPER AND HIT A KEY TO PRINT"
- WHILE INKEY$="":WEND
- FOR I=1 TO F
- LPRINT USING P$;A$(I,2);A$(I,1);A$(I,3)+" "+A$(I,4);A$(I,5);A$(I,6)
- LPRINT
- P=P+2
- IF P>59 THEN GOSUB PAGE
- NEXT
- GOTO START
-
- PAGE:
- FOR L=1 TO 66-P
- LPRINT
- NEXT
- P=0:RETURN
-
- DISPLAY:
- CLS
- FOR I=1 TO F
- 25 IF A$(I,2)="" THEN I=I+1:GOTO 25
- J=J+1
- PRINT
- PRINT TAB(5);I;TAB(10); A$(I,1);" ";A$(I,2)
- PRINT TAB(10);A$(I,3);" ";A$(I,4)
- PRINT TAB(10);A$(I,5);", ";A$(I,6)
- IF J/5=J\5 THEN GOSUB PAUSE
- IF UCASE$(R$)="N" THEN I=F:GOTO START
- NEXT I
- GOSUB PAUSE
- GOTO START
-
- PAUSE:
- J=0
- LOCATE 23,35:PRINT "LIST MORE? (Y)es - (N)o"
- 30 R$=INKEY$:IF R$="" THEN 30
- PRINT:RETURN
-
- ED.IT:
- N$(1)="FIRST NAME":N$(2)="LAST NAME":N$(3)="ADDR #1":N$(4)="ADDR #2"
- N$(5)="CITY":N$(6)="STATE":N$(7)="ZIP CODE":N$(8)="DONE"
- 40 CLS:PRINT :INPUT" ENTER RECORD NUMBER TO EDIT (0) TO END";R
- IF R=0 THEN START
- IF R<=F GOTO CHANGE
- BEEP:PRINT:PRINT:PRINT" RECORD DOES NOT EXIST"
- FOR I=1 TO 1000:NEXT:GOTO 40
-
-
- CHANGE:
- CLS :LOCATE 6
- FOR I= 1 TO 5
- PRINT TAB(10); I" - ";N$(I)": "TAB(30);A$(R,I)
- NEXT
- PRINT TAB(11);"6 - ";N$(6)": "TAB(30);LEFT$(A$(R,6),2)
- PRINT TAB(11);"7 - ";N$(7)": "TAB(30);RIGHT$(A$(R,6),5)
- PRINT TAB(11);"8 - ";N$(8)": "
- LOCATE 16,10
- PRINT "ENTER ITEM NUMBER FOR CHANGE"
- 120 C$=INKEY$:IF VAL(C$)<1 OR VAL(C$)>8 GOTO 120
- IF VAL(C$)=8 GOTO START
- X=1
- 125 CLS:LOCATE 6,20:PRINT "ENTER NEW "N$(VAL(C$))
- LOCATE 8,20:INPUT":",T$
- IF VAL(C$)>5 GOTO 130
- A$(R,VAL(C$))=UCASE$(T$): GOTO CHANGE
- 130 IF VAL(C$)=7 GOTO 140
- T$=UCASE$(T$)
- MID$(A$(R,6),1,2)=LEFT$(T$,2): GOTO CHANGE
- 140 MID$(A$(R,6),4,5)=UCASE$(T$): GOTO CHANGE
- GOTO START
-
- SEARCH:
- N$(1)="FIRST NAME":N$(2)="LAST NAME":N$(3)="ADDR #1":N$(4)="ADDR #2"
- N$(5)="CITY":N$(6)="STATE":N$(7)="ZIP CODE":N$(8)="DONE"
- CLS
- FOR I=1 TO 8
- LOCATE 5+I,30:PRINT I" - "N$(I)
- NEXT
- PRINT:PRINT TAB(25)"ENTER NUMBER OF SEARCH FIELD:"
- 145 R$=INKEY$:IF VAL(R$)<1 OR VAL(R$)>8 GOTO 145
- S=VAL(R$):IF S=8 THEN START
- CLS:LOCATE 10,20:PRINT "ENTER "N$(S)" TO SEARCH FOR:"
- LOCATE 10,42+LEN(N$(S)):INPUT "",S$
- S$=UCASE$(S$)
- FOR I=1 TO F
- IF A$(I,S)=S$ THEN GOSUB FOUND
- NEXT I
- BEEP:PRINT " SEARCH COMPLETE":FOR I=1 TO 2000:NEXT I:GOTO SEARCH
-
- FOUND:
- CLS:LOCATE 8,20
- PRINT I;TAB(25);A$(I,1)" "A$(I,2)
- PRINT TAB(25);A$(I,3)" "A$(I,4)
- PRINT TAB(25);A$(I,5)", "A$(I,6)
- PRINT :PRINT :PRINT TAB(25)"HIT ANY KEY TO CONTINUE"
- WHILE INKEY$="":WEND
- RETURN
-
- D.LETE:
- 150 IF D=0 THEN 170
- CLS:LOCATE 6,20
- PRINT "MORE RECORDS TO DELETE?":LOCATE 8,20:PRINT"(Y)es - (N)o"
- 160 C$=INKEY$:IF C$="" THEN 160
- IF UCASE$(C$)="Y" THEN 170
- IF UCASE$(C$)="N" THEN START
- BEEP:GOTO 160
- 170 CLS:LOCATE 6,20:PRINT"ENTER RECORD NUMBER TO DELETE"
- LOCATE 8,34:INPUT":",D
- CLS:LOCATE 8,25:PRINT A$(D,1)" "A$(D,2)
- PRINT TAB(25);A$(D,3)" "A$(D,4)
- PRINT TAB(25);A$(D,5)", "A$(D,6)
- PRINT :PRINT :PRINT TAB(25)"DELETE THIS RECORD? (Y)es - (N)o"
- 180 R$=INKEY$:IF R$="" GOTO 180
- IF UCASE$(R$)<>"Y" GOTO 150
- FOR I=1 TO 6:A$(D,I)="":NEXT:IF X<>1 THEN X=2:GOTO 150
-
- LABELS:
- CLS:LOCATE 12,25:PRINT"ALIGN LABELS AND HIT A KEY TO PRINT"
- WHILE INKEY$="":WEND
- FOR I=1 TO F
- LOCATE 10,40:PRINT F-I
- LPRINT A$(I,1)" "A$(I,2)
- LPRINT A$(I,3)" "A$(I,4)
- LPRINT A$(I,5)", "A$(I,6)
-
- LPRINT:LPRINT:LPRINT
- NEXT
- GOTO START
-
- SORT.FIELD:
- CLS
- PRINT :PRINT:PRINT:PRINT
- PRINT TAB(15)" ENTER SORT FIELD:":PRINT:PRINT
- PRINT TAB(15)" [1] - First Name
- PRINT TAB(15)" [2] - Last Name
- PRINT TAB(15)" [3] - Address No. 1
- PRINT TAB(15)" [4] - Address No. 2
- PRINT TAB(15)" [5] - City
- PRINT TAB(15)" [6] - State & Zip Code
- PRINT:PRINT
- LINE (140,42)-(412,117),1,B
- LINE (145,45)-(407,114),1,B
- 190 Q$=INKEY$:IF Q$="" THEN 190
- IF Q$<"1" OR Q$>"6" THEN BEEP:GOTO 190
- 195 SF=VAL(Q$)
-
- RE.SORT:
- CLS:LOCATE 12,25:PRINT "SORTING, PLEASE WAIT . . . . ."
- I=F:I1=I:X=2
- 200 I1 =I1\2
- IF I1=0 THEN WRITE.MAST
- I2=I-I1:I3=1
- 210 I4=I3
- 220 I5=I4+I1
- I6=I6+1
- IF A$(I4,SF)<=A$(I5,SF) GOTO 230
- FOR J=1 TO 6
- SWAP A$(I4,J),A$(I5,J)
- NEXT J
- I4=I4-I1
- IF I4>=1 THEN 220
- 230 I3=I3+1
- IF I3>I2 THEN 200
- GOTO 210
-
- NEWFILE:
- IF ERR=53 THEN
- OPEN "O",#1,"DF1:ADDR.DATA"
- CLOSE
- RUN
- END IF
- PRINT "ERROR " ERR
- END
-
- WRITE.MAST:
- IF R$="8" THEN START
- OPEN "O", #1, "DF1:ADDR.DATA"
- FOR J=1 TO F
- 300 IF A$(J,2)="" THEN J=J+1:GOTO 300
- WRITE #1,A$(J,2),A$(J,1),A$(J,3),A$(J,4),A$(J,5),A$(J,6)
- NEXT
- CLOSE
- END
-