		Many times I have wanted to extract some information from my database files
	without going through the hassle of starting my database manager.  In my case,
	my database manager is dBase III+ by Ashton-Tate.  This program was written to
	do that quickly and easily.  It should work from the command line and as a shell
	escape in most larger programs (like WordPerfect, Lotus, and dBase).

		The way to make the program work is this:

		1.  Put the read_dbf.exe file in a directory in your PATH environment
			variable.

		2.  Determine the database file you wish to search and put a pointer
			to that file in your environment.

			Example:  SET CHECKS=C:\DBASE\PERSONAL\CHECKS.DBF

		3.  Put a pointer called HOME in your environment.

			Example:  SET HOME=C:\INIT

			All of these steps are best done in your autoexec.bat file.
			PC magazine had a very good article on expanding the size of your
			environment if the 128 bytes DOS originally gives you, is not
			enough.

		4.  Edit a definition file; this definition is then located in the
			directory pointed to by HOME.  The definition file should be made
			by a text editor (no embedded characters).  There are four parts
			to a line in the definition file.

			Example:  Screen formatting~Printer formatting~Extra text~Field name

					  Screen formatting  = ansi.sys commands*,
										   nansi.sys commands,
										   fansi.sys commands
					  (*PC magazine had a very good article on ansi.sys and the
					   various screen commands also)

					  Printer formatting = Hewlett-Packard Laserjet commands,
										   Other printer commands (see your
										   owner's manual)

					  Extra text         = A label,
                                           Spacing,
										   Punctuation

					  Field name         = From dBase

					  ~                  = Field separators

			The definition file must be named:  xx.def
					The xx is the same as your environment variable.

			After these steps are taken the program is run:

					  Read_dbf Dbfptr Searchstring Fieldname

					  Read_dbf			= Program name

					  Dbfptr		    = Environment variable pointing
										  at your database file.

					  Searchstring		= A string that is exactly matched
										  This is case sensitive and may
										  not contain blanks.

					  Fieldname			= From the database file or the
										  definition file.

			When the program runs it returns error messages if you messed
			up or hopefully some good information.  You may have up to
			100 records in a database file that satisfy a searchstring
			or the program will refuse to proceed.  You may have up to
			sixteen fields from your database file in your definition
			file.  Don't forget to capitalize field names in your def-
			inition file.  This program can search on logical fields,
			character fields, date fields, and numeric fields.  Memo
			fields can not be searched.  It can search on fields that 
			are not included in the definition file.  For instance, if
			you have checks that have been cancelled receiving a logical
			.T., you can get all the uncancelled checks like this:

								read_dbf checks F can

			This illustration assumes that checks points to a database
			file with one of its fields named CAN.  CAN does NOT have to
			appear in the definition file.  Dates are stored in a data-
			base file as 19871001 - yyyymmdd.  They will not be displayed
			or cannot be searched on as 10/01/1987.

			Finally, after running the screen will have the information
			displayed like you wanted it (from the definition file) in
			the middle of the screen.  The last two lines have some items
			of information.

					1/43  =  a fraction like this will appear in the
							 left margin.  This means there are 43 
							 records that matched your searchstring.
							 The displayed record is the first.

					F,B,P, and Q  =  prompts
							 F prompt means to go forward to the next
							 record that matches the searchstring.  This
							 will also take a numeric argument like 3f
							 will move forward three records.

							 B prompt means to go backward to the last
							 record that matched the searchstring.  This
							 will also take a numeric argument like 3b
							 will move backward three records.

							 P prompt will send the screen contents to
							 your printer.  You might say I can also do
							 that with a prtscrn command.  Where I find
							 this useful is printing addresses on enve-
							 lopes.  I can include commands for changing
							 to landscape orientation and manual feeding
							 on my HP Laserjet.

							 Q prompt is a quit without printing.

		Any program cannot be tested by the author on all configurations
		of all systems, therefore all bugs cannot be anticipated.  I hope
		this will run error free on your system.  I have included the 
		source code so you can fiddle with details that might prevent it
		from running for you.  The source code will also allow you to see
		how embarrassingly inefficient this program is coded.  I would
		appreciate suggestions for improving this program but they must
		be accompanied by pretty graphic explanations; I understand slow.
		Also I would appreciate hearing about success with this program
		and maybe a small amount of failure.  For me, it works well.
