Contents of the QEXPORT.DOC file
-*- Q-Export -*-
A Message Exporting Utility
for QuickBBS Systems.
Copyright (c) 1989
All Rights Reserved
Q-Export: WHAT IT IS (or What It Be) --
Q-Export zips (more or less) through your QuickBBS message
base, exporting messages from whichever board you specify
to a standard text file. Why do this? Mainly to get the
messages off of your system and into storage before
they're automatically deleted during maintenance. These
messages may then be waded through at some later date.
Doing this won't make sense to many people; however, if
you carry a large number of echoes and (perish the
thought!) happen to not read any for a few days, you may
find that you have literally thousands of messages to
catch up on. Rather than adjust your batch files to stop
auto-deleting (which would allow your MSGTXT.BBS file to
grow to gigantic proportions), you can use Q-Export to
spool the messages off to a text file. This text file can
then be ZIP'ed or ARC'ed up for storage, or dumped off
onto a floppy. When you get around to reading it, you can
use any standard word processor. (Please note: Q-Export
does NOT delete any messages in your QuickBBS message
base; use MSGUTILS for that.)
Q-Export: RUNNING IT --
Q-Export must be run from your main QuickBBS directory, or
at least have access to the MSGHDR.BBS and MSGTXT.BBS
files via the path. It requires two command line
parameters, and will accept an optional third parameter.
Here's the syntax:
QExport  
The first parameter ("") is the QuickBBS message
board (as defined in CONFIG.BBS) to export mail from.
Q-Export Doc Page 2
Optionally, you may use a parameter of "A" (no quotes) to
dump messages from all boards.
The second parameter can be one of two things: It can be
the "starting number," meaning that if you used 14350 for
this parameter, the export would begin with message
#14350. Or, this parameter (the second on the command
line) can be entered as "-Hfilename" which would cause
Q-Export to look for "filename" which would contain the
number of the last message checked for export. "Do WHAT?"
you say. I'll explain this in more detail in a moment.
The third parameter ("") is optional.
You may, should you wish, tell Q-Export what to call the
export file. You may also include a full path with the
filename to tell Q-Export where to put the exported
messages. If this parameter is missing, Q-Export will
name the export file "QEXP?.TXT" where ? is the board
number being exported.
The fourth parameter ("") is also optional.
When used, this option will cause Q-Export to export only
messages addressed to "User Name." For instance, I
occasionally run Q-Export using the "A" parameter, and
have it search for messages to me (Bob Ransom). This will
give me a dump of all mail on my board addressed to me.
PLEASE NOTE: To use this "User Name" option, you MUST
specify an export filename (parameter 3)!
Now, back to the -Hfilename thing. Let's say that you
want to run Q-Export from a batch file so that all the
messages on a board can be kept and archived. So you run
Q-Export as shown:
QEXPORT 5 -Hdogmeat Board5.txt
This would cause Q-Export to export all of the messages
from board 5, starting with the high message (the last
processed message) as stored in the file "dogmeat".
Messages exported would go to the file "BOARD5.TXT."
The first time you run Q-Export, the program will complain
that it can't find the file "dogmeat" (it hasn't been
created yet) and begin processing the messages starting at
#1. The next time Q-Export runs, it will find the
"dogmeat" file that it created on its first run. Inside
the file is a number -- the number of the last message
processed by Q-Export. It will use that message as its
starting point for the export. This way you won't keep
exporting the same messages over and over again, and can
let Q-Export run pretty much unattended. There's a slight
hitch to doing this when you renumber your messages. More
on this below.
Q-Export Doc Page 3
For an example of how this could be done from a batch
file, check the enclosed sample batch file "NIGHTLY.BAT."
Here's another example:
QEXPORT a -Hsysmail.hi sysmail.txt bob ransom
-which scans all boards for mail to Bob Ransom, and dumps
it into a file called sysmail.txt. The "last read"
message is stored in sysmail.hi.
Q-Export: STUFF YOU SHOULD KNOW --
Q-Export DOES NOT DELETE ANY MESSAGES FROM YOUR MESSAGE
BASE! Just thought I'd make that really clear. It does
nothing but read the messages, then pass them along to a
Q-Export will now deal properly with hidden SEEN-BY lines
that it may or may not find in a message base. This was
never included before since Echogen/Qecho didn't toss
them. With the advent of ZmailQ and the soon to be
released FDTosScan, SEEN-BY's may now be stored in the
QBBS message base. If Q-Export finds them, it will export
them along with the complete message text. It simply
strips off the ^A character that "hides" them.
Q-Export will check the "starting number" that you enter
to make sure that it's valid. If it's not, Q-Export will
abort with a message giving you the range of "active"
messages. However, if you enter a starting number greater
than 32,767, Q-Export will probably just crash without
fanfare. 32,767 is the largest message number that
QuickBBS allows, so this shouldn't be a problem.
If you choose to use the -H option to keep a LastRead
pointer, be aware that Q-Export has no way of knowing when
you renumber your message base. Granted, most people
don't do this all that often. Nonetheless, when you do,
and Q-Export finds that its LastRead pointer points to a
message that doesn't exist, the program will abort. The
enclosed utility SETQEXP will help you take care of this
problem. See the SETQEXP.DOC and batch file
"RENUMBER.BAT" enclosed in this archive for more
If you are using batch files to run Q-Export, you may be
interested to know that it will exit or abort with DOS
errorlevels depending on how things go for it. Here's the
list of errorlevels:
0 -- Everything ran fine. Normal exit.
Q-Export Doc Page 4
1 -- One (or all) of the QuickBBS message base files
2 -- Starting message number out of range.
3 -- No command line parameters specified (or too
few specified; at least 2 are required.)
If the specified export file already exists, the newly
exported messages are appended to the bottom of the
existing file. If the file doesn't exist, it's created at
Q-Export uses a binary search method to quickly seek the
message record that corresponds to . From
that point on, Q-Export does a straight comparison run
through the messages. This slows things down a little but
is probably more accurate than what I'd come up with to
speed things up. Your times may vary; see dealer for
At the end of its run, Q-Export will tell you how many
messages were exported, and to what filename they were
sent. (This serves as kind of a "reminder" if you choose
to use the default filenames.)
For those who care: Q-Export was written using Turbo
Pascal 5.0 (which is a damned nice package and not too
hard to learn, either).
Q-Export: THE LEGAL STUFF --
Q-Export may be copied and distributed freely provided
certain guidelines are followed:
1- You can't change the program, this document file, or
any other files included in the archive, in any way.
2- All original files must be distributed in one archive.
You may use whichever archiver suits you.
3- No charge may be made for distribution of the file
except as follows: Q-Export may be distributed on
subscription BBS's and on large subscription services such
as Compuserve, Genie, etc. This exception does not apply
to BBS's or services which charge "by the download," nor
does it apply to companies which "sell" disks of public
domain software. This program is not public domain; it is
copyrighted with all rights reserved by its author (me).
4- Q-Export is guaranteed to do absolutely nothing. No
warranty is expressed nor implied. Use it at your own
Q-Export Doc Page 5
QuickBBS is (c) Adam Hudson.
Q-Export: PROBLEMS, PRAISE (!), AND SUCH --
As far as I've been able to tell, Q-Export is reasonably
bulletproof. However, someone, somewhere, someday may
somehow find a way to make it crash and burn. If you're
unlucky enough to be that someone, I'd appreciate hearing
about the problem as I'd like to fix it.
I'd also like to know if you find the program useful, or
if you can think of any additions or changes that would
make it better. Writing these utilities is sometimes like
flushing a toilet: you see the stuff go out, but you have
no idea what happens to it after that. So drop me a note
You can contact me via the QuickBBS echo, the new
QUICK_DEV developers echo, or via netmail (see below).
Thanks to Mike Janke for pointing me in the right
direction on the relationship of QuickBBS's MSGIDX.BBS
file and the MSGHDR.BBS file.
The Creative Connection BBS
June 27, 1989