MAT.DOC

5.2 KB 1ca997bb2e880b5a…
			   - 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**!!!