home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ftp.barnyard.co.uk
/
2015.02.ftp.barnyard.co.uk.tar
/
ftp.barnyard.co.uk
/
cpm
/
walnut-creek-CDROM
/
MBUG
/
MBUG026.ARC
/
CATLIST2.BAS
< prev
next >
Wrap
BASIC Source File
|
1979-12-31
|
3KB
|
99 lines
REM PROGRAM TO REMOVE DUPLICATE FILES FROM MAST.CAT PRINTING
PRINT " BY MIKE HOBBY (03) 435-2016 4DEC86 "
PRINT
PRINT "THIS PROGRAM IS DESIGNED TO WORK WITH MAST.CAT, WHICH IS A"
PRINT "CATALOG OF CP/M FILES PRODUCED BY CATM.COM "
PRINT "ITS PURPOSE IS TO ONLY LIST A FILE ONCE & NOTE HOW MANY "
PRINT "OTHER COPIES EXIST, IT PRINTS TWO COLUMNS PER PAGE "
ON ERROR GOTO BLUE
LNS=0
BLANK$=" "
LINE$ ="###############################################################"
N%=4
DISCFLAG=0
PAGENO=1
BLANK$=" "
TOPOF$=CHR$(12)
INPUT "INPUT COMPUTOR LOCATION ";CPU$
INPUT "INPUT TO DAY`S DATE";DATE$
PRINT
INPUT "ENTER 1 IF YOU WANT DISK NAMES LISTED,ELSE 0 ";DISCFLAG
DEF HEADG
PRINT "CATALOG OF FILES ON COMPUTER AT "; CPU$ + BLANK$ + DATE$ +\
BLANK$;"PAGE ";PAGENO
PRINT LINE$
FEND
DEF NEWPAGE
PRINT TOPOF$
LNS=0
PAGENO=PAGENO+1
CALL HEADG
FEND
LPRINTER
CALL HEADG
OPEN "MAST.CAT" AS 7
PRNTFLAG=-1
COUNT=0
FIRSTREAD: READ #7; T$ :
PRINT T$ :LNS=LNS+2
IF RIGHT$(T$,1) = ")" THEN GOTO SECONDREAD ELSE GOTO FIRSTREAD
SECONDREAD:
READ #7; T$,S$
IF LEFT$(T$,2) = "++" THEN IF DISCFLAG =1 THEN GOTO DISCFILE
IF LEFT$(T$,2) = "++" THEN GOTO SECONDREAD
PRINT :LNS=LNS+2
GETNEXT: READ #7; Z$,V$ : IF END #7 THEN THEEND
IF Z$=T$ THEN LET COUNT = COUNT + 1 : GOTO GETNEXT
EXTLOCATE:
PACKT:
L = MATCH(".",T$,1)
L=L-1
U$=LEFT$(T$,L) : W$=RIGHT$(T$,N%)
FOR J=1 TO 8 - L : U$=U$+" " : NEXT J
P$=U$ + W$
PACKS:
L = MATCH(".",S$,1)
L=L-1
U$=LEFT$(S$,L) : W$=RIGHT$(S$,N%)
FOR J=1 TO 8 - L : U$=U$+" " : NEXT J
Q$=U$ + W$:GOTO PRESS
DISCFILE:
U$=LEFT$(T$,10) :W$=RIGHT$(S$,4)
L=MATCH(".",S$,1)
L=L-1
M$=LEFT$(S$,L)
FOR J=1 TO 8-L:M$=M$+" ":NEXT J
P$=U$+"E"+BLANK$+M$+W$
PRINT P$
LNS=LNS+1
IF LNS GE 110 THEN CALL NEWPAGE
GOTO SECONDREAD
PRESS:
IF COUNT GE 1 THEN LET P3$=" +" + STR$(COUNT) + " MORE" ELSE LET P3$=""
IF PRNTFLAG = 1 THEN LET COLUMN = 40 ELSE LET COLUMN = 1
PRINT TAB(COLUMN);P$+" "+Q$+P3$; : IF PRNTFLAG = 1 THEN PRINT
PRNTFLAG = PRNTFLAG * (-1)
LNS=LNS+1
IF LNS GE 110 THEN CALL NEWPAGE
COUNT = 0 : T$=Z$ : S$=V$
IF LAST THEN RETURN
REM IF LEFT$(T$,2) = "++" THEN GOTO SECONDREAD
GOTO GETNEXT
THEEND:
LAST = -1
GOSUB EXTLOCATE
CLOSE 7
PRINT TOPOF$
CONSOLE
PRINT " DONE , COMPLETE , ALL IS FINISHED "
STOP
BLUE: PRINT
PRINT "ERROR :-" ;ERR : PRINT " ON LINE :-" ;ERRL
END