Dec 122017
Compare BBS catalogs. Creates extensive catalog files.
File MAT.ZIP from The Programmer’s Corner in
Category Communications
Compare BBS catalogs. Creates extensive catalog files.
File Name File Size Zip Size Zip Type
CUT.ZIP 10116 9816 deflated
MAT.DOC 5344 2240 deflated
MAT.EXE 15771 9052 deflated
MYBBS.LST 9471 4324 deflated
TEST.LST 684 422 deflated

Download File MAT.ZIP Here

Contents of the MAT.DOC file

- MAT -

It seems that one of the things that BBS Sysops do best is moan
and groan about file uploads.

It also seems that one of the things that BBS callers do best is
moan and groan about how tough it is to find a file to upload.

Sysops often hear lines like, "you already have every file in the
free world on your Bulletin board". Well, it just ain't so. You'd
be surprised how small the intersection of files on any two
bulletin boards really is. I was.

If SET_1 is the set of all files on bulletin board A, and SET_2 is
the set of all files on bulletin board B, then, according to the
diagram below;

Group A are the files which exist only on Board A.
Group B are the files which exist on both Board A and Board B.
Group C are the files which exist only on Board B.

If I wanted to upload a file to Board A, I would be very interested
in knowing the contents of Group C, since every element of this group
is a candidate for uploading to Board A.


A Group
B Group


SET_1 is the set of files which are members of Group A and Group B.
SET_2 is the set of files which are members of Group B and Group C.
Group B is called the intersection of sets 1 and 2.

In fact, if I knew the contents of Group C, I could become an uploading

MAT is a program (actually a filter) whose input is SET_2, and whose
output is either Group C, or alternatively, "Group B", the intersection of
the 2 sets.

Here's how to use MAT:

mat [-vnd] -f file1 file2 .....

MAT will read the control file (the -f option), and then read
the remaining files named in the command line.

MAT is invoked at the MS-DOS command line in the following

C> MAT -f mybbs.lst foreign.lst


C> MAT -f mybbs.lst < foreign.lst

MAT will filter the "foreign" list, outputting only those
lines from "foreign.lst" which don't match the first word of
any line in the control file.

Since MAT expects both input and control files to be in this format;

BMGREP2.ARC 2969612-28-87 Boyer-Moore Search Text Files wit
FBACK.ARC 3686412-28-87 Best hd backup yet!
HEADHUNT.ARC 3686412-28-87 Get the proper includes in Turbo C
LEGAL.ARC 7065612-28-87 many legal documents...fill in the bla
MAGNCART.ARC 921612-28-87 The Magna Carta. King John signed it.
OMFDUMP.ARC 2355212-28-87 Dump .obj files into readable form
CLONINV.ARC 8396812-27-87 New Version of Space Invaders Game

you can either capture lists with your communications programs, or
use catalogs of files which are provided for downloading by
most BBS's.

MAT will read each line of the control file, discarding everything
beyond the first whitespace (keeping only the file name), and load
the names into a list.Then mat will read the input file(s) and
search for matches, outputting all it matches which it finds.

-vVerbose mode. Outputs statistical info to stderr.
-nIntersection. Outputs intersection of 2 sets.
-dDebug mode. Outputs debug info.

If you'd like to see the intersection of 2 lists, just
use the -n option.

Since the control list is kept in memory, the number of control
input lines will be limited depending on how much RAM you have
in your system. I processed an approximately 8000 file list
in a 640K system with no problem.

MAT will accept more than 1 control file, so that you may
invoke MAT by;

mat -f my_bbs1.lst -f my_bbs2.lst < other.lst

If your bulletin board has a large list, or you plan to use
MAT often, you may increase processing efficiency by cutting
the control list with a suitable "cut" utility. I've included
one with MAT.

cut -f1 < my_bbs.lst >short.lst
mat -f short.lst new_bbs.lst

Commands such as those listed above will improve MAT's
processing time.


Two lists, mybbs.lst, and test.lst have been included to provide examples
of MAT's use.

To find the intersection (those files common to both lists)
of the two lists, type;

MAT -n -f mybbs.lst test.lst

to find files in test.lst which aren't in mybbs.lst,
MAT -f mybbs.lst test.lst

to find files in mybbs.lst which aren't in test.lst,
MAT -f test.lst mybbs.lst

WARNING:Extensive Use of this program will cause all bulletin
boards to contain all the same files.

Any comments, suggestions or criticisms;

Bob Halsall
c/o Eastern 'C' Board
Suffern, NY

If you find that this program has endeared you to the Sysop of
your favorite board, or is partially responsible for your increased
security level, please send a few dollars to :

The American Cancer Society
90 Park Avenue
New York, New York 10016

Let's kick cancer's a**!!!

 December 12, 2017  Add comments

Leave a Reply