(****************************************************)

(* DLCounter Ver 1.33ß Written by Gary Bouchard *)

(* SysOp - The Computer Store BBS *)

(* St. Augustine, Florida (904)797-4824 *)

(* Copyright(c) 1990....All Rights Reserved *)

(* Released August 4, 1990 Modified August 31,1990 *)

(****************************************************)

-= Description =-

DLCounter is a program that will read thru your PCBoard(tm) DOWNLOAD.TXT file, and gather information on how many times a particular program has been downloaded from your BBS, and compile a list of files that have 1 or more downloads into a work file. The program then goes thru the work file, and inserts information about how many downloads a file has had into your DIR file, appending the information to your files description.

-= Requirements =-

To use DLCounter, you must be using PCBoard(tm) 14.5 or greater!

This is because DLCounter uses PCBoards(tm) @X## macros for colorization, which is not compatible with previous versions of PCBoard(tm).

DLCounter will read your PCBoard.dat file to obtain information on the files that it needs to work with. My system's DOWNLOAD.TXT file is 235,456 bytes long. I have trimmed out the entries which contain information about ARC files since my system no longer has any, and presently have about 1½ years worth of download information recorded in it. My System contains approximately 1,300 verified files, and the initial run took about 1.5 minutes. Once the initial run has been made, subsequent runs are around 45 seconds to update all the files. This speed largely depends on how many DIRxx files you have on your system.

-= Installation =-

Installation could not be any easier. Place DLCount.exe anywhere on your system. The configuration file contains the information that the program needs to operate and is usually kept along with the program. DLCounter will create a temporary database file defined by the user which it uses to read from to update the DIRxx files. This file is created in the directory where DLCount is stored and is regenerated on each run. I recommend that you BACKUP your DIR files before you begin using the DLCounter, just in case your not happy with the results, or a glitch creeps up on us!

-= Configuration =-

The Configuration of DLCounter is quite simple. The Sample Configuration file included in this ZIP file contains examples of how the file is setup. The Configuration file is fully commented, and explains what is required to be in place. Any line in the configuration file that begins with a semi-colon ";" is ignored by DLCounter.

Following the example,first list your path to the file PCBOARD.DAT,

then list the physical directories of your downloadable files with

the heading "DLFILE". DLCounter wants to make sure the files exist

before trying to enter the download count into the DIR file description. Next specify whether to you want DLCounter to create backup files using the *.BAK extension, just in case. Next an optional entry into the callers log made regarding the process. Then we need to tell DLCounter about the Conference DIR files that we would like included in the updates, and ONLY the Conferences. These are specifically the TEXT DIR files, and they have a heading of CONFS (for brevity). The Main Board DIR files are detected automatically by DLCounter. We also have the ability to specify a color using the PCBoard(tm) @X## macros with the parameter HLITE. See the Configuration File for the color chart.

These commands do not need to be in any certain order, and are not case sensitive. We can also specify in the configuration if you want a bulletin to be generated which contains the most active files. To add this, move to the Heading which say's "BLT", and add to the line the path/location/name of the BLT file you want generated. You may also specify what the minimum download count should be to be included in the BLT file. The BLT file is done using PCBoard(tm) @X## color macros, and is colorized based on the amount of downloads a particular file has to it's credit. If you need more capabilities in the BLT generation, please let me know!

If you intend on creating configuration files specifically for conferences, then you only need to put in DLFILE entries which match the particular conference. You may also want to consider naming the configuration files according to your conference numbers to help keep track of which is which.

-= Operation =-

Operation is also quite simple, and the program was designed to be

operated from your EVENT.SYS file. Simply type the command "DLCount", along with the name of the configuration file you intend to use with this particular run, and press enter. Your program will do the rest. The first time you run the program, you will want to create a master list, and let the program insert the initial download counts. This is done by passing a command line parameter after the program name like so;

C:\PCB>dlcount <space> dlcount.cfg <space> /new <enter>

____always first

DLCounter allows 3 command line switches to be used by the program after the name of your configuration file has been specified.

The "/NEW" parameter is one besides the name of the configuration file that is recognized by the program and should be typed to include the slash, which is denoted as a switch. This action creates the database file from which we start out. If the program does not find the user defined database file, it will generate one; but without the "/NEW" parameter, the file will only contain downloads greater than or equal to the filedate of the config file. After the initial database list is done the first time and your DIR files have been updated, the "/NEW" is no longer required unless you wanted it. It will *NOT* effect the download count if you do use the "/NEW" parameter again. In fact, I use the "/NEW" parameter when I want to change the highlight colors in the DIRxx file.

Without the "/NEW" parameter, DLCounter checks the date of the last run, and from that point on, only collects filenames that have been added since the last run. DLCount uses the date of the configuration file to determine the last run, and the filedate of the config file is updated after successful completion of the program.

Another switch that can be used is to aid in debugging, and the switch is called "/DB". This switch places x's into your database file as the record is updated, and allows us to run a debugging program call DLCDB which is included in the ZIP file. The DLCDB program will print or display any database entries that did not get updated for one reason or another. If you do not use the "/DB" switch when you run DLCounter, it will not put the x's into the records.

There is also a switch that will allow you to make a run, causing DLCounter to remove the entries from the DIRxx file.

This switch is "/CLEAR". It may be placed anywhere on the command line after the configuration file name, and is not case sensitive.

If you desire to clear the entries, you need a complete database file, so that DLCounter knows what entries should be deleted. To accomplish this, simply use the "/NEW" switch along with the "/CLEAR" command.

The final switch is called "/NOTAG". When DLCounter runs, and generates it's HOT FILES list, It appends at the bottom of the list a tag line that say's :

"▪ DLCounter Ver 1.33ß (c) 1990... Written by Gary Bouchard "

Some people do not like that kind of thing, so I allow the SysOp to suppress the tagline. Who say's I have an ego problem! <grin>.

Because these command line switches are probably not used all the time, I will not be moving them into the configuration file.

It doesn't make sense to take up space with temporary commands, then remove them for a new run.

So that you know what the program is doing, I will explain the process. When DLCounter is first run, it checks to see if the user defined database file exists, and if so what was the date of the last run. This is done by comparing the date of the configuration file with the date of the database file. After a successful execution of DLCounter, the file date of the configuration file is updated to reflect the current system date. If DLCounter determines that your list needs rebuilding, based on the date of the last run, it will compile a list, first of all scanning the physical files that it can locate in the download directories, then it will compile a list of all of the entries contained in your directories, counting each file, and keeping track of how many times a particular file was found in the DOWNLOAD.TXT file. Once all the files have been accounted (existence verified) for, DLCounter writes out a list of all the files it found with 1 or more downloads to a database file defined by the user. This is the work file that DLCounter uses to make your entries into the DIRxx file. The reason it is done this way, is because PCBoard(tm) records information into the DOWNLOAD.TXT file about whether the file transaction was an upload or a download, The name of the person that created the file transaction, the date and time of the file transaction, the name of the file transferred, the protocol used, the transfer rate (CPS), and the number of errors that occurred during the transfer. Every file transaction that occurs, gets appended to the end of this file. What DOWNLOAD.TXT does not tell you, is from what directory or DIRxx location the file was transferred from. It is for this reason that when DLCounter is in operation, it will open each of your DIRxx files 1 by 1, read in the file name, and look for a match in the file Database. A binary search of the Database file is conducted, so there is virtually no difference in speed if you had 1 entry in the file or 2000. If it finds a match, it gathers the information on how many times the file was downloaded, and inserts that information into your DIRxx listing, appending the count to the file description. Rather than trying to locate the end of a line and putting this information at the end, it inserts a new line with the count. If the count should change in the future, DLCounter will merely update the count rather than add another line. This gives the program other capabilities, like user definable color highlighting of the Download count.

-= Caveats =-

DLCounter is believed to be in a bug free state at this point thru the repetitive testing by me. This program is currently in a BETA test state, and is being released to put it thru the ringer (so to speak!). Please report any problems that might occur directly to me, so that I can get them straightened out ASAP. Please do not bother Clark Development with problems concerning this software. My BBS is a free access system, and upon registration, users have full privileges to get the latest version of DLCounter, or report problems.

-= Comments =-

I have been working on DLCounter for a long time...in fact.. I got

the idea from logging onto CompuServe. I work for a living, and program for a hobby. I have released this program as "FREEWARE" as it is classified. This program is fully functional, and not CRIPPLED in any way, shape, or form. I *DO NOT* want any money for this program. All I ask in return for it's use is some feedback, or suggestions for enhancements, and that you drop me a line on my free access BBS, letting me know that you are using it. I have been a PCBoard(tm) SysOp since version 10.0 was released, and the reason I wrote my own program was because as a SysOp, I was tired of being nickeled and dimed to death for utilities for the BBS. That's what inspired me to start writing my own programs, and release them without charge. I am not against anyone making a few bucks from a user of the BBS, but I personally feel (and I'm probably not alone) that SysOps already have a HUGE investment into these systems and can not continue to shell out money for every program that makes the job just a little easier, each time one comes along. There is an association in the works, that, in the future will have their own versions of the popular software to compete with all the "NAGWARE", and at the right price....who's going to win? The users! Please remember also that I am not a professional programmer, but a mere novice. Any comments/suggestions that you Pro's can make to help me learn sound programming techniques would be appreciated.

-= Legal Stuff =-

This is a Copyrighted(c) program. It cannot be altered, disassembled, decompiled, or hacked without my expressed written consent. I maintain the rights to the source code, and will support the program as long as there is an interest in it. I cannot be responsible for any damage that may result from the use of this program. Though the program appears to be "BUG FREE" there maybe something that I did not catch. This program is in it's BETA TESTING stage.....As Sam Smith say's -> "You've Been Warned!".

This ZIP file was assembled using the Authenticity Checking Capabilities of PKZIP(tm) with a label of;

"The Computer Store BBS -> 904-797-4824".

If Authenticity verification is not present when you unzipped this file, or the Authenticity check does not show the above, then DO NOT use it, as it has been altered, and may not be safe to use.

-= Credits =-

I want to personally thank Duncan Huges for giving me the information that was required to complete this program. It's people like him that make programming fun to do! I would also like to thank Sam Smith of the ToolShop BBS for the terrific tools he has written for Turbo Pascal programming, and his generosity in sharing them with others. Also a big thank you to Art Emery of the Taken Road BBS in Margate, Florida for his assistance in debugging the program on a system other than mine. I also don't want to forget my new programming partner from the Falcon Warrior BBS, Utah - Bill Shields for giving me ideas!

-= Technical =-

DLCounter is written in Borlands Turbo Pascal ver 5.5, and includes

routines from DUNCAN HUGES of San Diego, Ca. and Sam Smith of the

ToolShop BBS in Phoenix, Arizona. The system used to write the program is a IBM PS/2 model 60 with 230meg of Disk, and 3megs of RAM using LIM 3.2 Expanded memory, Compaq DOS ver 3.31, and tested under a Beta Version of MS-DOS 5.0, and DR.DOS ver 5.0 without any problems. In fact, loading the DOS Kernel into HIMEM allows very large DOWNLOAD.TXT files to be processed easily. The program was tested using PCBoard(tm) ver 14.5/E3 single node system. Source code will be available for inspection after the program has been fully debugged, and then upon request.

-= Notes =-

I plan to add some features to the program as soon as it is determined to be stable. I don't want to give away the new features, but I am certainly open to suggestions. Beta Test versions will continue until Version 2.0 or the program finally proves to be bug free.

I am a member of the Intelec(tm) NetMail Network, and can be reached thru just about any of the conferences available. My BBS # is on the top of page #1, and is a free open access system upon registration. I request that any questions or problems you encounter with this program be directed to me on my BBS or thru the Net/Mail network.