home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Simtel MSDOS 1992 September
/
Simtel20_Sept92.cdr
/
msdos
/
bbs
/
mat.arc
/
MAT.DOC
next >
Wrap
Text File
|
1988-01-23
|
5KB
|
179 lines
- 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.
┌───────────────────────┐
│ SET_1 │
│ │
│ ┌───────────┼────────────┐
│ Group │ │ │
│ A │ Group │ │
│ │ B │ Group │
│ │ │ C │
│ │ │ │
└───────────┼───────────┘ │
│ │
│ │
│ SET_2 │
└────────────────────────┘
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
maniac.
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<control-file> 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
manner;
C> MAT -f mybbs.lst foreign.lst
or,
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 29696 12-28-87 Boyer-Moore Search Text Files wit
FBACK.ARC 36864 12-28-87 Best hd backup yet!
HEADHUNT.ARC 36864 12-28-87 Get the proper includes in Turbo C
LEGAL.ARC 70656 12-28-87 many legal documents...fill in the bla
MAGNCART.ARC 9216 12-28-87 The Magna Carta. King John signed it.
OMFDUMP.ARC 23552 12-28-87 Dump .obj files into readable form
CLONINV.ARC 83968 12-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.
OPTIONS:
-------
-v Verbose mode. Outputs statistical info to stderr.
-n Intersection. Outputs intersection of 2 sets.
-d Debug 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.
Examples
--------
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,
type;
MAT -f mybbs.lst test.lst
to find files in mybbs.lst which aren't in test.lst,
type;
MAT -f test.lst mybbs.lst
WARNING: Extensive Use of this program will cause all bulletin
boards to contain all the same files. <Ha, Ha>
Any comments, suggestions or criticisms;
Bob Halsall
c/o Eastern 'C' Board
Suffern, NY
(914)-368-0658
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**!!!