00010 TRONB : REM ALLOW USER TO STOP PROGRAM 00020 REM PROGRAM CATDEL.BAS, DELETE RECORDS FROM MAST.CAT 00030 REM 00040 REM WRITTEN BY SAUL G. LEVY, TUCSON, ARIZONA, APRIL 24, 1988 00050 REM LAST CHANGED APRIL 24, 1988 00060 REM COPYRIGHT (C) SAUL G. LEVY 1988 00070 REM 00080 REM USE INDEX$ FOR SPEED 00090 CLEAR 20000 00100 REM 00110 REM DIMENSIONS 00120 DIM 40 DUM$, 80 TEXT$, 8 FCAT$, FTMP$, FBAK$ 00130 REM 00140 REM FILE NAMES 00150 FCAT$="MAST.CAT" : FTMP$="MAST.TMP" : FBAK$="MAST.BAK" 00160 REM 00170 REM PROGRAM NAME 00180 CLS 00190 PRINT "PROGRAM CATDEL TO DELETE RECORDS FROM MAST.CAT" 00200 PRINT 00210 PRINT 00220 PRINT "YOU MAY DELETE ANYTHING WITHIN THE MAST.CAT FILE!" 00230 PRINT "A MATCH CAN BE FOUND ANYWHERE IN THE FILE NAME, DISK NAME, OR" 00240 PRINT "ANY OTHER FIELDS WHICH MAY BE IN YOUR FILES!" 00250 PRINT 00260 PRINT "IF YOU WISH TO DELETE A DISK NAME, ENTER .NNN RATHER THAN JUST" 00270 PRINT "THE NUMBER NNN. IF YOU ENTER JUST A PERIOD (.), EVERYTHING WILL" 00280 PRINT "BE DELETED (COMMA TOO)! ENTERING ONLY BLANKS WON'T BE ACCEPTED!" 00290 PRINT 00300 PRINT "MANUAL DELETIONS ARE ONLY NEEDED IF YOU CHANGE A DISK NAME, OR" 00310 PRINT "TOTALLY ERASE A DISK AND DON'T REUSE THE DISK NAME (INCLUDING THE" 00320 PRINT ".NNN NUMBER!)." 00330 PRINT 00340 REM 00350 "REENTER" 00360 REM 00370 LINEINPUT "WHAT DO YOU WISH TO DELETE (CR=QUIT): ";DUM$ 00380 IF LEN(DUM$)=0 THEN END 00390 DUM=LEN(DUM$) 00400 TEXT$=SPACE$(DUM) 00410 IF DUM$=TEXT$ THEN "REENTER" 00420 PRINT 00430 REM 00440 REM OPEN FILES 00450 KILL FBAK$ : REM DELETE NOW (MAY NOT BE ROOM FOR 3 COPIES) 00460 OPEN "I",1,FCAT$ : OPEN "O",2,FTMP$ 00470 REM 00480 REM READ/WRITE FIRST RECORD () 00490 LINEINPUT#1,TEXT$ 00500 PRINT#2,TEXT$ 00510 REM 00520 REM TURN OFF ERROR HANDLING SINCE WE DON'T KNOW THE NUMBER OF RECORDS 00530 ON ERROR GOSUB 65535 00540 Done=0 : REM EOF FLAG 00550 N=0 : REM NUMBER OF DELETIONS 00560 REM 00570 "RESTART HERE" 00580 REM 00590 CLEAR INDEX$ 00600 I=0 : REM NUMBER OF ENTRIES IN INDEX$ 00610 PRINT "READING..." 00620 REM 00630 "READ MAST" 00640 REM 00650 REM READ EACH RECORD 00660 LINEINPUT#1,TEXT$ 00670 IF ERROR=257 THEN ERROR=0 : Done=1 : GOTO "WRITE RECORDS" 00680 REM 00690 REM INSERT INTO INDEX$ 00700 I=I+1 00710 INDEX$(I)=TEXT$ 00720 IF MEM>100 THEN "READ MAST" 00730 REM 00740 "WRITE RECORDS" 00750 REM 00760 PRINT "WRITING..." 00770 REM 00780 REM WRITE INDEX$ TO OUTPUT FILE 00790 FOR J= 1 TO I 00800 REM 00810 REM DELETE THIS RECORD? 00820 TEXT$=INDEX$(J) 00830 DUM=INSTR(1,TEXT$,DUM$) 00840 LONG IF DUM=0 00850 PRINT#2,TEXT$ : REM NO 00860 XELSE 00870 PRINT "Del: ";TEXT$ : REM YES 00880 N=N+1 00890 ENDIF 00900 NEXT J 00910 IF Done=0 THEN "RESTART HERE" 00920 REM 00930 REM FINISH UP 00940 PRINT 00950 PRINT "THERE WERE";N;"DELETIONS" 00960 PRINT 00970 PRINT "RENAMING FILES" 00980 CLOSE 00990 REM 01000 REM RENAME FILES 01010 RENAME FCAT$ TO FBAK$ 01020 RENAME FTMP$ TO FCAT$ 01030 REM 01040 RUN : REM EASIEST WAY TO RESTART PROGRAM 01050 REM LAST LINE OF CATDEL.BAS