home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / mbug / mbug026.arc / CATLIST2.BAS < prev    next >
BASIC Source File  |  1979-12-31  |  3KB  |  99 lines

  1.  REM    PROGRAM TO REMOVE DUPLICATE FILES FROM MAST.CAT PRINTING
  2. PRINT " BY  MIKE HOBBY (03) 435-2016    4DEC86 "
  3. PRINT
  4. PRINT "THIS PROGRAM IS DESIGNED TO WORK WITH MAST.CAT, WHICH IS A"
  5. PRINT "CATALOG OF CP/M FILES PRODUCED BY CATM.COM "
  6. PRINT "ITS PURPOSE IS TO ONLY LIST A FILE ONCE & NOTE HOW MANY "
  7. PRINT "OTHER COPIES EXIST, IT PRINTS TWO COLUMNS PER PAGE "
  8.  
  9. ON ERROR GOTO BLUE
  10. LNS=0
  11. BLANK$="   "
  12. LINE$ ="###############################################################"
  13. N%=4
  14. DISCFLAG=0
  15. PAGENO=1
  16. BLANK$="   "
  17. TOPOF$=CHR$(12)
  18. INPUT "INPUT COMPUTOR LOCATION ";CPU$
  19. INPUT "INPUT TO DAY`S DATE";DATE$
  20. PRINT
  21. INPUT "ENTER 1 IF YOU WANT DISK NAMES LISTED,ELSE 0 ";DISCFLAG 
  22. DEF HEADG
  23.     PRINT "CATALOG OF FILES ON COMPUTER AT "; CPU$ + BLANK$ + DATE$ +\
  24.           BLANK$;"PAGE ";PAGENO
  25.     PRINT LINE$
  26. FEND
  27.  
  28. DEF NEWPAGE
  29.     PRINT TOPOF$
  30.     LNS=0
  31.     PAGENO=PAGENO+1
  32.     CALL HEADG
  33. FEND
  34. LPRINTER
  35. CALL HEADG
  36.  OPEN "MAST.CAT" AS 7
  37.     PRNTFLAG=-1
  38.     COUNT=0
  39. FIRSTREAD:    READ #7; T$ : 
  40.     PRINT T$ :LNS=LNS+2
  41.     IF RIGHT$(T$,1) = ")" THEN GOTO SECONDREAD ELSE GOTO FIRSTREAD
  42. SECONDREAD:   
  43.     READ #7; T$,S$
  44.     IF LEFT$(T$,2) = "++" THEN  IF DISCFLAG =1 THEN GOTO DISCFILE
  45.     IF LEFT$(T$,2) = "++" THEN GOTO SECONDREAD
  46.     PRINT :LNS=LNS+2
  47. GETNEXT: READ #7; Z$,V$  :  IF END #7 THEN THEEND
  48.     IF Z$=T$ THEN LET COUNT = COUNT + 1  :  GOTO GETNEXT
  49. EXTLOCATE:  
  50.   PACKT:
  51.     L = MATCH(".",T$,1)
  52.     L=L-1
  53.     U$=LEFT$(T$,L)  :  W$=RIGHT$(T$,N%)
  54.     FOR J=1 TO 8 - L  :  U$=U$+" " : NEXT J
  55.     P$=U$ + W$
  56.   PACKS:
  57.     L = MATCH(".",S$,1)
  58.     L=L-1
  59.     U$=LEFT$(S$,L)  :  W$=RIGHT$(S$,N%)
  60.     FOR J=1 TO 8 - L  :  U$=U$+" " : NEXT J
  61.     Q$=U$ + W$:GOTO PRESS
  62. DISCFILE:
  63.     U$=LEFT$(T$,10) :W$=RIGHT$(S$,4)
  64.     L=MATCH(".",S$,1)
  65.     L=L-1
  66.     M$=LEFT$(S$,L)
  67.     FOR J=1 TO 8-L:M$=M$+" ":NEXT J
  68.     P$=U$+"E"+BLANK$+M$+W$
  69.     PRINT P$
  70.     LNS=LNS+1
  71.     IF LNS GE 110 THEN CALL NEWPAGE
  72.     GOTO SECONDREAD
  73. PRESS:
  74.     IF COUNT GE 1 THEN LET P3$=" +" + STR$(COUNT) + " MORE"  ELSE LET P3$=""
  75.     IF PRNTFLAG = 1 THEN LET COLUMN = 40  ELSE  LET COLUMN = 1
  76.     PRINT TAB(COLUMN);P$+"  "+Q$+P3$; : IF PRNTFLAG = 1 THEN PRINT
  77.     PRNTFLAG = PRNTFLAG * (-1)
  78.     LNS=LNS+1
  79.     IF LNS GE 110 THEN CALL NEWPAGE
  80.     COUNT = 0 : T$=Z$ : S$=V$
  81.  IF LAST THEN RETURN
  82. REM IF LEFT$(T$,2) = "++" THEN  GOTO SECONDREAD
  83.  
  84. GOTO GETNEXT
  85.  
  86. THEEND: 
  87.     LAST = -1 
  88.     GOSUB EXTLOCATE
  89.     CLOSE 7
  90.  PRINT TOPOF$
  91. CONSOLE
  92.  PRINT " DONE , COMPLETE , ALL IS FINISHED "
  93. STOP
  94. BLUE: PRINT  
  95.     PRINT "ERROR :-" ;ERR : PRINT " ON LINE :-" ;ERRL
  96. END
  97.  
  98.  
  99.