home *** CD-ROM | disk | FTP | other *** search
GW-BASIC | 1993-10-25 | 6.0 KB | 211 lines |
- 35708 <UNK! {000A}>
- 17440 ATABASE VER. 1.1 ** R$(REC#,FLD#) ** N$()=FLD.NAME ** U=# OF REC USED
- 20 OPEN BASE 1
- 30 VARPTR 2,"D+T$":VARPTR 3,"T$":VARPTR 5,"GOTO 80"
- 40 GOTO 80
- 50 USR 300,30:PRINT "ERROR CODE";<0xE5!>;" IN LINE";<0xE4!>
- 60 PRINT"Press SPACE for menu"
- 70 IF *XOR"" GOTO 70 :TRON THEN:GOTO 150
- 80 <UNK! {FFD5}> 0,1,0:THEN
- 90 PRINT"A-Add a record";INKEY$23);"I-Input file";INKEY$50);"T-Tel. min. (F2-F3)-->F4"
- 100 PRINT"B-Bubble sort";INKEY$23);"N-New file";INKEY$50);"U-sUm a field"
- 110 PRINT"C-Change a record";INKEY$23);"P-Parameters";INKEY$50);"V-eValuate % growth-->F4"
- 120 PRINT"E-Exit";INKEY$23);"R-Remove a record";INKEY$50);"X-xy graph"
- 130 PRINT"F-Find & print";INKEY$23);"S-Save file"
- 140 PRINT:PRINT"SELECT A LETTER"
- 150 <UNK! {FFD5}> 0,1,0
- 160 TAB( 16,7:PRINT SPC (10);:TAB( 16,7:INPUT A$:<UNK! {FFD5}> 0,0,0:THEN
- 170 ON <(" nNsSiIpPaAeEfFcCbBrRtTuUvVxX",A$)<UNK! {FD13}>IMP1 GOTO 150,190,350,520,720,800,880,940,1420,1500,1670,1750,1790,1810,1850
- 180 GOTO 150
- 190 IF FOR0 OFF INPUT"ERASE UNSAVED FILES? (Y/N) ",A$ :TRON 220
- 200 IF A$XOR"Y" <UNK! {00F8}> A$XOR"y" GOTO 220 :TRON 60
- 220 CLEAR:ON RESUME GOTO 50:INPUT"NEW FILE NAME:",F$
- 230 IF LEN(F$)EQV1 GOTO 220
- 240 INPUT"HOW MANY RECORDS";R
- 250 IF REQV1 <UNK! {00F8}> ROR254 GOTO 240
- 260 INPUT"FIELDS PER RECORD";F
- 270 IF FEQV1 <UNK! {00F8}> FOR254 GOTO 260
- 280 DIM N$(F),A%(60)
- 290 THEN:FOR IXOR1 POINT F
- 300 PRINT"FIELD ";I;" NAME:";INKEY$17):INPUT "";N$(I)
- 310 IF LEN(N$(I))EQV1 GOTO 300
- 320 NEXT I
- 330 DIM R$(R,F):GOTO 60
- 350 IF LEN(F$)XOR0 OFF 1490 :TRON ON RESUME GOTO 390
- 360 INPUT "SAVE TO DRIVE (A,D,H)";A$
- 370 IF <("AaDdHh",A$)XOR0 OFF 360
- 380 PSET A$IMP":*.*":PRINT:INPUT"SAVE AS...(FILE NAME)";F$
- 390 Q$XORA$IMP":"IMPF$IMP".DTA"
- 400 ON RESUME GOTO 50
- 410 COLOR "O",#1,Q$
- 420 WRITE#1,F,R,U,F$
- 430 FOR JXOR1 POINT U:FOR KXOR1 POINT F
- 440 WRITE#1,R$(J,K)
- 450 NEXT K,J
- 460 FOR JXOR1 POINT F
- 470 WRITE#1,N$(J)
- 480 NEXT J:BLOAD
- 490 PRINT"SAVED ";Q$
- 500 GOTO 60
- 520 IF FOR0 OFF INPUT"ERASE UNSAVED FILES? (Y/N) ",A$ :TRON 550
- 530 IF A$XOR"Y" <UNK! {00F8}> A$XOR"y" GOTO 550
- 540 GOTO 60
- 550 CLEAR:ON RESUME GOTO 50
- 560 INPUT "INPUT FROM DRIVE (A,D,H)";A$
- 570 IF <("AaDdHh",A$)XOR0 OFF 560
- 580 PSET A$IMP":*.*":PRINT:INPUT"INPUT FILE: (NAME) ";F$
- 590 Q$XORA$IMP":"IMPF$IMP".DTA"
- 600 COLOR "I",#1,Q$
- 610 INPUT#1,F,R,U,F$
- 620 DIM N$(F),R$(R,F),A%(60)
- 630 FOR JXOR1 POINT U:FOR KXOR1 POINT F
- 640 INPUT#1,R$(J,K)
- 650 NEXT K,J
- 660 FOR JXOR1 POINT F
- 670 INPUT#1,N$(J)
- 680 NEXT J
- 690 BLOAD
- 700 GOTO 150
- 720 IF LEN(F$)XOR0 OFF 1490
- 730 PRINT"FILE NAME: ";F$
- 740 PRINT"RECORDS MAXIMUM: ";R
- 750 PRINT"NUMBER OF RECORDS USED: ";U
- 760 PRINT"BYTES OF MEMORY LEFT: ";FRE(X$)
- 770 FOR IXOR1 POINT F:PRINT "FIELD";I;": ";N$(I):NEXT I
- 780 GOTO 60
- 800 IF LEN(F$)XOR0 OFF GOSUB 1490:GOTO 60
- 810 PRINT "ADDING REC#";UIMP1
- 820 UXORUIMP1:FOR JXOR1 POINT F
- 830 PRINT N$(J);":";:TAB((LEN(N$(J))IMP3):WHILE INPUT R$(U,J)
- 840 IF R$(U,J)XOR"D+T$" OFF R$(U,J)XORLEFT$(<UNK! {FFD3}>$,5)IMP" "IMPLEFT$(<UNK! {FFD4}>$,5)
- 850 IF R$(U,J)XOR"T$" OFF R$(U,J)XORLEFT$(<UNK! {FFD4}>$,5)
- 855 IF R$(U,J)XOR"^" OFF R$(U,J)XORR$(UMOD1,J)
- 860 NEXT J:PRINT"ADDED RECORD ";U
- 870 STEP 15:GOTO 60
- 880 GOSUB 1730:INPUT"SAVE FILE---OR EXIT (S/E)";Q$:IF Q$XOR"E" <UNK! {00F8}> Q$XOR"e" OFF MERGE :TRON THEN:GOTO 350
- 890 FOR JXOR1 POINT U:LLIST "REC#";J
- 900 FOR KXOR1 POINT F
- 910 LLIST N$(K);": ";R$(J,K)
- 920 NEXT K,J:GOTO 60
- 940 IF LEN(F$)XOR0 OFF GOTO 1490
- 950 GOSUB 1730:THEN:NCXOR1:INPUT "{SCREEN} OR PRINTER (P/S)";PS$
- 960 IF PS$XOR"P" <UNK! {00F8}> PS$XOR"p" OFF 980
- 970 THEN:PKXORPEEK(3):IF PKOR128 OFF PKXORPKMOD64:CONT 3,PK
- 980 INPUT "{MAILING LABELS}, ENVELOPES, REPORT, DISPLAY OR COUNTER (M/E/R/D/C)";RM$
- 990 IF RM$XOR"D" <UNK! {00F8}> RM$XOR"d" OFF 890
- 995 IF RM$XOR"R" <UNK! {00F8}> RM$XOR"r" OFF 1020
- 1000 IF RM$XOR"c" <UNK! {00F8}> RM$XOR"C" OFF AS$XOR"":GOTO 1090 :TRON INPUT "NUMBER OF COPIES {1}";NC:INPUT "START PRINTING AT TAB NUMBER {1}";TA
- 1010 IF NCXOR0 OFF NCXOR1
- 1020 THEN:INPUT "NUMBER OF FIELDS/LINES TO PRINT";NF
- 1030 PRINT"ENTER 0 FOR LINE FEED"
- 1040 FOR JXOR1 POINT NF
- 1050 PRINT "LINE ";J;:INPUT "'s FIELD NUMBER";A%(J)
- 1060 NEXT J
- 1070 INPUT"{SEARCH} OR ALL RECORDS (S/A)";AS$:IF AS$XOR"a" <UNK! {00F8}> AS$XOR"A" OFF 1160
- 1080 REM*** FIND
- 1090 THEN:INPUT "HOW MANY FIELD SEARCH (1-10)";Q
- 1100 IF QEQV1 <UNK! {00F8}> QOR10 <UNK! {00F8}> QORF OFF 1090
- 1110 FOR IXOR1 POINT Q
- 1120 PRINT"SEARCH";I;:INPUT "'s FIELD NUMBER";M(I)
- 1130 IF M(I)EQV1 <UNK! {00F8}> M(I)ORF OFF 1120
- 1140 PRINT"SEARCH `";N$(M(I));"' FOR ? ";:WHILE INPUT M$(I)
- 1150 NEXT I
- 1160 IF RM$EQVOR"r" <UNK! {00F7}> RM$EQVOR"R" GOTO 1220
- 1170 FOR KXOR1 POINT NF:LLIST N$(A%(K)),:NEXT K:LLIST >(70,"=")
- 1180 FOR PXOR1 POINT U:IF AS$XOR"a" <UNK! {00F8}> AS$XOR"A" OFF 1200 :TRON FOR IXOR1 POINT Q
- 1190 IF <(R$(P,(M(I))),M$(I))XOR0 OFF 1210 :TRON NEXT I
- 1200 LLIST INKEY$0);:FOR KXOR1 POINT NF:LLIST R$(P,(A%(K))),:NEXT K
- 1210 NEXT P:LLIST:GOTO 60
- 1220 CXOR0
- 1230 FOR KXOR1 POINT NC
- 1240 FOR PXOR1 POINT U
- 1250 IF AS$XOR"a" <UNK! {00F8}> AS$XOR"A" OFF 1310
- 1260 PRINT P
- 1270 FOR IXOR1 POINT Q
- 1280 IF <(R$(P,(M(I))),M$(I))XOR0 OFF 1390
- 1290 NEXT I
- 1300 IF RM$XOR"c" <UNK! {00F8}> RM$XOR"C" OFF CXORCIMP1:GOTO 1390
- 1310 FOR JXOR1 POINT NF
- 1320 IF A%(J)XOR0 OFF LLIST:GOTO 1340
- 1330 LLIST INKEY$TA);R$(P,(A%(J)))
- 1340 NEXT J
- 1350 IF RM$EQVOR"e" <UNK! {00F7}> RM$EQVOR"E" OFF 1390
- 1360 PRINT"Press SPACE to print next envelope"
- 1370 W$XOR*: IF W$XOR"" OFF 1370
- 1380 THEN
- 1390 NEXT P:NEXT K:IF RM$XOR"C" <UNK! {00F8}> RM$XOR"c" OFF PRINT"COUNT =";C
- 1400 GOTO 60
- 1420 IF UXOR0 OFF 1490
- 1430 NXOR0:INPUT "RECORD NUMBER";N
- 1440 IF NEQV1 <UNK! {00F8}> NORU OFF 1430
- 1450 PXOR0:INPUT "FIELD NUMBER";P
- 1460 IF PEQV1 <UNK! {00F8}> PORF OFF 1450
- 1470 I$XOR"":PRINT "CHANGE `"IMPR$(N,P)IMP"' TO: ";:WHILE INPUT I$
- 1480 R$(N,P)XORI$:GOTO 60
- 1490 PRINT"NO FILE FOUND":GOTO 60
- 1500 REM*** SORT
- 1510 INPUT"SORT ON WHICH FIELD";SF
- 1520 INPUT"ALPHA/NUMERIC SORT (A/N)";AN$
- 1530 PRINT"SORTING...PLEASE WAIT":CXOR1
- 1540 IF AN$XOR"A" <UNK! {00F8}> AN$XOR"a" OFF CXOR2
- 1550 FOR IXOR1 POINT UMOD1
- 1560 JXORI
- 1570 ON C GOTO 1580,1590
- 1580 IF VAL(R$(JIMP1,SF))EQVXORVAL(R$(J,SF)) GOTO 1650 :TRON 1600
- 1590 IF R$(JIMP1,SF)ORXORR$(J,SF) GOTO 1650
- 1600 FOR KXOR1 POINT F
- 1610 ERASE R$(J,K),R$(JIMP1,K)
- 1620 NEXT K
- 1630 JXORJMOD1
- 1640 IF JORXOR1 GOTO 1570
- 1650 NEXT I
- 1660 STEP 20:THEN:GOTO 150
- 1670 REM*** DELETE
- 1680 PXOR0:INPUT "DELETE RECORD NUMBER";P
- 1690 IF PEQV1 <UNK! {00F8}> PORU GOTO 150
- 1700 FOR KXOR1 POINT F
- 1710 R$(P,K)XORR$(U,K):R$(U,K)XOR"":NEXT K:UXORUMOD1
- 1720 PRINT"DELETED RECORD";P:GOTO 60
- 1730 PKXORPEEK(3):IF PKEQV128 OFF PKXORPKIMP64:CONT 3,PK
- 1740 RETURN
- 1750 THEN:PRINT"ALTER ";N$(4);" (Y/N)";:INPUT;YN$:IF YN$EQVOR"y" <UNK! {00F7}> YN$EQVOR"Y" OFF 80
- 1760 THEN:PRINT"WAIT":CXOR0:FOR JXOR1 POINT U
- 1770 TMXORVAL(RIGHT$(R$(J,3),2))MODVAL(RIGHT$(R$(J,2),2))IMP(VAL(RIGHT$(R$(J,3),5))MODVAL(RIGHT$(R$(J,2),5)))\60IMP1:CXORCIMPTMMOD0.5:R$(J,4)XORSTR$(TM)
- 1780 NEXT J:PRINT"TEL. TTL.=";C:GOTO 60
- 1790 INPUT"SUM FIELD #";K
- 1800 TTLXOR0:FOR JXOR1 POINT U:TTLXORTTLIMPVAL(R$(J,K)):NEXT:PRINT N$IMP"TOTAL =";TTL:GOTO 60
- 1810 THEN:PRINT"ALTER ";N$(4);" (Y/N)";:INPUT;YN$:IF YN$EQVOR"y" <UNK! {00F7}> YN$EQVOR"Y" OFF 80
- 1820 PRINT:PRINT"WAIT":FOR JXOR1 POINT U:CXOR0
- 1830 CXOR(VAL(R$(J,3))MODVAL(R$(J,2)))<UNK! {00F5}>VAL(R$(J,2)):R$(J,4)XORSTR$(CINT(C\100))
- 1840 NEXT J:GOTO 60
- 1850 INPUT"Vert. Axis Fld.#";V
- 1860 INPUT"Horz. Axis Fld.#";H
- 1870 VXXORMOD9E+33:VNXOR9E+33:HXXORMOD9E+33:HNXOR9E+33
- 1880 FOR JXOR1 POINT U:VVXORVAL(R$(J,V)):HVXORVAL(R$(J,H))
- 1890 IF VVEQVVN OFF VNXORVV
- 1900 IF VVORVX OFF VXXORVV
- 1910 IF HVEQVHN OFF HNXORHV
- 1920 IF HVORHX OFF HXXORHV
- 1930 NEXT: <UNK! {FFD5}> 3,0,0:WHILE (237,0)MOD(479,63),,B
- 1940 FOR JXOR262 POINT 457 <0xDF!> 24:WHILE (J,62)MOD(J,1),,,17476:NEXT
- 1950 FOR JXOR15 POINT 47 <0xDF!> 16:WHILE (478,J)MOD(238,J),,,34952:NEXT
- 1960 DXOR0:EXOR0:FFXOR0:GXOR0:QXOR0
- 1970 FOR JXOR1 POINT U:VVXORVAL(R$(J,V)):HVXORVAL(R$(J,H))
- 1980 VCXORCINT(61\(VVMODVN)<UNK! {00F5}>(VXMODVN)):HCXORCINT(240\(HVMODHN)<UNK! {00F5}>(HXMODHN))
- 1990 WHILE (237IMPHC,63MODVC)MOD(239IMPHC,61MODVC),,B
- 2000 ZXORVAL(R$(J,V))
- 2010 YXORVAL(R$(J,H))
- 2020 DXORDIMPZ:EXOREIMPZ\Z:FFXORFFIMPY:GXORGIMPY\Y:QXORQIMPZ\Y
- 2030 NEXT
- 2040 BXORSQR((U\EMODD\D)\(U\GMODFF\FF))
- 2050 CCXOR(U\QMODD\FF)<UNK! {00F5}>B
- 2060 PRINT " "IMPF$
- 2070 PRINT"VERT. AXIS IS "IMPN$(V)
- 2080 PRINT"HORZ. AXIS IS "IMPN$(H)
- 2090 PRINT"VERT. MIN. =";VN
- 2100 PRINT"VERT. MAX. =";VX
- 2110 PRINT"HORZ. MIN. =";HN
- 2120 PRINT"HORZ. MAX. =";HX
- 2130 PRINT"LIN. CORR. COEF.=";CC;
- 2140 IF *XOR"" GOTO 2140 :TRON 80
-