DizIt Pro v1.6 For PCBoard v14.5a and 15.x And Other Systems with use DIRx formats By Copyright 1995 Robert Neal 317 Hickory Romeoville, IL 60441 Support BBS: CorpSoft BBS Node #1: (815) 886-3233 28800 v.34 (Public) Node #2: (815) 886-9381 28800 v.34 (Public) Node #3: (815) 886-9388 28800 v.34 (subscriber only) WARRANTY: This program has been used extensively on my system. While I am confident in it's operation, no warranty of use is implied or expressed. In plain terms, use this program at your own risk. PROGRAM INFORMATION =================== As a sysop, you've probably downloaded hundreds of files to add to your board. You've probably used the local upload option in PCBoard to add these files to your system, or you've used PCBFiler to read the new files and manually typed in each file description. But with many files now including their own description file, FILE_ID.DIZ and DESC.SDI, wouldn't it be nice to have a program do all the work for you? DizIt Pro is a utility to do just that for PCBoard v14.5a and PCBoard 15.x sysops. Besides being used for simple imports, DizIt has been used to recover from a hard drive loss. One large board, with thousands of files found that it had lost their description files. Their back-up was garbled and sitting down hand entering thousands of files was not their idea of fun for a weekend. They simply used DizIt to recover about 95% of their descriptions and was done in a matter of hours (and they could attend to other matters at hand). What DizIt Pro will do: - Up to 1,500 files may be processed at once. - Search .ZIP and .ARJ files for FILE_ID.DIZ or DESC.SDI. If found, it will be automatically imported into the DIR file name you specify. - If a FILE_ID.DIZ or DESC.SDI file is not found, PCB DIRx text (and compatible format) files can be searched for descriptions, great for importing files from captured file listings for other BBS's, file listings from CDROM's, etc. - Optionally limit the length of the description imported (nothing like importing a 40 line description from some files). - Move files which a description has been sucessfully found to directory your specify. Files for which a file description is not found can be left in the current directory or moved to a "hold" directory for later processing. - Optionally will place the date of the newest file in the imported description. - Up to 10 different text files can automatically be searched for descriptions. ** - Will optionally uncompress and verify the files for virus with either SCAN or F-PROT. - Will optionally search a PCBoard file .IDX file for existing file name and exclude that file from being imported. - Will optionally place the date of the newest file or current date in the PCB DIR file. - Can be run as your PCBTEST.BAT file to verify new uploads. - Can be run to import all files in a directory, or randomly import selected number of files (place files in a directory and then import a set number each nightly event) using /R option. ** - Optionally rename filename extensions to descriptive file extensions for files that are unable to be moved to your new upload directory - Optionally restrict descriptions to 45 character standard, or reformat to fit ** - Restrict files by age of the file (in days) as specified by you (** indicates features available in registered version only) The entire process is simple to do, even easier than using the "local upload" option of PCBoard, plus offers features that PCBoard local upload function doesn't. And best of all, its _FAST_. If no description is found DizIt Pro will do no further processing of the file except for moving the file to the holding directory you've indicated. This allows you to place all your files you want to add in the directory and let DizIt Pro search for those that can be automatically added to your PCB File directory listing. While DizIt Pro will not search for the FILE_ID.DIZ and DESC.SDI for files other than .ZIP and .ARJ, it will quickly scan the file listing for descriptions to import. Great for importing .GIF, .EXE, .LHA, .TXT, etc. into your PCBoard upload directory. PROGRAM INSTALLATION/OPERATION ============================== INSTALL ------------------------- Place the DIZIT PRO files into a directory in your path. You may place DIZIT PRO in it's own directory if you so choose, but you must be sure to properly configure the batch files to make the call to the proper directory when running DIZIT Pro. Ensure that the appropriate archiving programs are available in your directory path. For ZIP files, you'll need PKZIP.EXE and PKUNZIP.EXE. For ARJ files you'll need ARJ.EXE. DIZIT makes a call to these programs to extract the description files as well as importing your BBS comment file. Also, ensure that SCAN or F-PROT files have been installed on your system and available in your DOS path if you will be using the virus scanning option of DizIt Pro. DizIt Pro has been tested with the following versions: ARJ v2.30, PKZIP/PKUNZIP v2.04, SCAN v2.0.2 and F-PROT v2.12. Other versions may work depending on changes made by those authors. CREATE CONFIGURATION FILE -------------------------- Edit DizIt Pro configuration file, DizItPro.CFG. Use the program DPROCFG.EXE contained with this archive to edit this file or use your favorite text editor to edit this file. The items in the configuration file are as follows, do not include the line number references. Refer to detailed explanation below for each line: DizItPro.CFG -------------------------- Line 1: CorpSoft BBS Line 2: 0 Line 3: G:\WORK Line 4: C:\UPLOAD Line 5: C:\HOLD Line 6: D:\PCB\MAIN\UPLD Line 7: D:\BBS.CMT Line 8: D:\IMPFILE Line 9: D:\DIZITPRO\DIZITPRO.LOG Line 10: Y Line 11: Y Line 12: 0 Line 13: N Line 14: C:\PCB\MASTER.IDX Line 15: C Line 16: Y Line 17: Y Line 18: Y Line 19: Y Line 20: 180 Line 1: BBS Name Line 2: Registration number, leave as 0 if unregistered. Line 3: Drive/path to be used for temporary work area. A RAM disk, if available, is recommended. Ensure that this directory exists before using DizIt Pro. Do not include the trailing "\" at the end of the directory name. Line 4: Drive/path of where files are to be moved to once they are processed. This could be your public upload directory, private directory or any other directory you choose. Again, ensure that this directory exists before using DizIt Pro. Do not include the trailing "\" at the end of the directory name. Line 5: Drive/path of where files should be moved if either FILE_ID.DIZ or DESC.SDI is not found. Enter "NONE" on this line if you want DizIt Pro to keep the files in the directory they are currently located. Line 6: Full path/filename of the file to which is to be updated with the files imported. Typically this will be your public upload directory, but you may want to instead move the files to your private upload directory so that you may preview the files before making them public. This file should relate to the directory choosen above. Line 7: Full path/filename of a comment file you want to have added to the ZIP file. Typically, this may be your "BBS AD" comment. Enter NONE if you do not wish to use this option. Line 8: Full path/filename of a text file to be scan and descriptions extracted from for import. File must be in PCBoard file directory format. Enter NONE if you do not wish to use this feature. You can also configure DizIt Pro to search multiple text files, see section on EXTENDED OPTIONS below for details. Line 9: Log file for DizIt Pro, records name of files imported and if description file was found or not. Line 10: Enable option to include NEWEST FILE: in description (Y or N) Will exclude dates for FILE_ID.DIZ or DESC.SDI files. Line 11: Enable option to verify disk space (Y or N). If you have this problem, disable this option (enter a "N") until this issue is resolved in a future release. Line 12: Maximum number of lines of description to import. Seems some authors like to use the FILE_ID.DIZ as a means of writing a review about their program, I've seen one program that had a description of 30+ lines. You can enter any value (1-99) in this field or enter a 0 to allow full description imports. Line 13: Type of program to use for virus scanning. F=F-Prot, S=Scan or N=None. You must have F-PROT or SCAN in your DOS path to use this feature. Line 14: Name of an index file to be searched. If filename is found in this index file it will not be processed. This is great for systems who have multiple CD's, just create one master index file of all your individual index files. DizIt Pro will quickly scan the index file. Enter NONE if you do not use this option. Line 15: Enter "C" to enter current date in the PCB DIR file or "N" to use the date of the newest file in the archived file. Line 16: Enter "Y" or "N", determines if 45 character restriction is enforced on .DIZ or .SDI imports. If "Y", then if a .DIZ or .SDI is > 45 characters, the description file is ignored. If "N", then the description will be imported, but truncacted at the 45 character restriction. Line 17: Enter "Y" or "N", select if descriptive file extensions should be used for files which are unable to be processed to the new uploads directory. If "Y", the the following extensions will be used, replacing the .ZIP or .ARJ extensions: .VIR - Possible virus found in file .IDX - File already exists, found in index file .DIR - File already exists, found in upload directory .NDF - No description found You may then review these files later and rename back to their .ZIP or .ARJ extensions if appropriate for manual processing. Line 18: Enter "Y" or "N", select if description should be reformatted if File_ID.DIZ or DESC.SDI description exceeds 45 characters. If "Y", then description imported will be reformatted to the 45 character standard. Line 19: Enter "Y" or "N", determines if output from programs called from Dizit Pro (ie Scan, PKZip, etc). should be displayed. Enter "Y" to display out or "N" to surpress. Line 20: Use to restrict the number of days old a file should be for uploading. In this example, the 180 means any file which the newest file date is over 180 days old should be rejected from being imported/uploaded. Enter 365 for 1 year. Enter 0 if you do not wish to use this feature. PROGRAM OPERATION ------------------ Move all files to be processed into a temporary file directory. This directory should only contain files you wish to have imported into your PCBoard directory. Enter the following command at the DOS prompt: DIZITPRO DIZITPRO.CFG C:\DIZTEMP *.ZIP -------- ------------ ---------- ----- ^ ^ ^ ^ | | | \Wildcard to be used (optional-default="*.*") | | \ Directory containing files to be processed | \ Name of your configuration file \ Name you have used for the DIZITPRO.EXE program Once the prorgam starts, it will read the names of all files in your temporary file directory. DizIt Pro will then, if instructed, add the ZIP COMMENT specified on line 7 of the DizItPRO.CFG file to the ZIP file. DizIt Pro can then, if configured, perform a virus scan using either SCAN or F-PROT. DizIt Pro will unarchive the files from the original file, but does not currently unarchive any files contained within the original archive (ie will not unzip a ZIP file within a ZIP file). If a virus is found, it is moved to you "hold" directory and a notation is marked in the log file. DizIt Pro will then check the ZIP or ARJ file to see if the FILE_ID.DIZ or DESC.SDI file exists in the ZIP or ARJ file. If the file is not a ZIP or ARJ archived file, DizIt Pro will skip to the next process listed below. If FILE_ID.DIZ or DESC.SDI is found, DizIt Pro will extract the file to your temporary work directory and then begin to add the file to the end of your PCBoard file directory indicated in the configuration file. Unlike other similar programs, DizIt Pro will update your PCBoard file listing with the file size and the current date of the upload, no further processing of the PCBoard file directory list is required. If FILE_ID.DIZ or DESC.SDI is not found, DizIt Pro will optionally scan the text file indicated in line 8 of the DIZITPRO.CFG file for filename matches. If a match is found, DizIt Pro will automatically import the description from the text file. Once DizIt Pro has imported the file and description into your PCBoard file directory list, DizIt Pro will move the file from the current directory to the directory specified in line 4 in the configuration file. EXTENDED OPTIONS ================ The following options are extended features of DizIt Pro. Novice users may which to ignore these options until you become familar with DizIt Pro's operations. These options enhance the capability of DizIt to make it more powerful for those who have special requirements. USE OF ENVIROMENT VARIABLE ---------------------------- At the request of a sysop, I have added support for enviroment variable DIZITUPDIR. I had a request from a sysop who was using DIZIT to import to 150 different directories and wanted a way to send files to different directories without 150 different .CFG files. Now, you can put "SET DIZITUPDIR=directory" (where directory=the directory you want files moved to) before calling DIZIT PRO and this will override the directory you have indicated in your .CFG file. If you do not have a special need for this option, do not use it as it may confuse you. MULTIPLE IMPORT TEXT FILES ---------------------------- As a default, DizIt Pro will search only one text file for descriptions to import if FILE_ID.DIZ or DESC.SDI is not found in the archived file. You can extend the number of files to be searched to up to 10 different files. Change line 8 in the .CFG file to list the name of a file which contains up to 10 filenames to be searched. To inform DizIt Pro that you are using this option, enter the filename preceeded by the "%" character, for example "%N:\IMPORT.LST". The "%" character tells DizIt Pro that the filename designated is one which contains a listing of the actual text files to be searched, like PCBoard's DLPATH. If you are using DPROCFG.EXE to create/modify your .CFG file, pressing F1 will call up a editor in which you can enter the names of the files to be searched. In the example above N:\IMPORT.LST would be a text file with the following: N:\DIR\FILE.1 N:\DIR\FILE.2 N:\DIR\FILE.3 When DizIt Pro was run, it would find that the N:\IMPORT.LST is a listing of files to be searched (FILE.1, FILE.2 and FILE.3) if FILE_ID or DESC.SDI was not contained in the archive file. FILE.1 would be searched first, the FILE.2 and finally FILE.3 until a description was found. If no description was found, DizIt Pro will move the file to the "hold" directory you have specified for manual uploading. Using this option, if you were to call 3 different sources for files, you could keep a seperate listing for each and then let DizIt Pro search each for a matching filename and description. USE IN PCBTEST.BAT ------------------ DizIt Pro can be used as your upload processor for user and local uploads. Create your PCBTEST.BAT file as follows: If '%2 == 'ATTACH goto end C:\DIZITPRO\DIZITPRO.EXE M:\DIZITPRO\DIZITUP.CFG %1 %2 %3 END: That's all you need to do, DizIt Pro does the rest. You may wish to create a seperate .CFG file for operating under this option. For example, you probably would not need to have the disk space verification enabled. USING INDEX FILE SEARCH ----------------------- DizIt Pro can quickly serach a standard PCB DIR .IDX file for matching file names. This is extremely powerful when you combine all your .IDX files into one large master .IDX file. There is a file named IDX-MERG written by Gary Meeker which will let you merge .IDX files together. I have created one master .IDX file for all my local uploads plus all my CD ROM's. Even with over 100,000 files included in my master file, DizIt Pro can quickly scan the file for matching filenames in a matter of seconds. Now, when I add files to my system I know that there are not duplicates of anything I already have available. RANDOM FILE IMPORT ------------------ New feature in v1.2 is the ability to import files on a random basis. This is real handy if you have a directory full of files and want to import them over several days. To use this feature, enter the command line as usual, but instead of indicating the wildcard filename, enter /Rxx with xx equals the number of files to randomly import. For example: DIZITPRO DIZITPRO.CFG C:\DIZTEMP /R12 This would select 12 files at random from the directory C:\DIZTEMP. If less than the number of files indicated are available, DizIt Pro will automatically switch from RANDOM to REGULAR file processing mode. ERROR CODES --------------- Here's a listing of the error codes, and a brief description of their meaning: 3 RETURN without GOSUB 54 Bad file mode 4 Out of DATA 55 File already open 5 Illegal function call 56 FIELD statement active 6 Overflow 57 Device I/O error 7 Out of memory 58 File already exists 9 Subscript out of range 59 Bad record length 11 Division by zero 61 Disk full 14 Out of string space 62 Input past end of file 16 String formula too complex 63 Bad record number 19 No RESUME 64 Bad file name 20 RESUME without erro 67 Too many files 24 Device timeout 68 Device unavailable 25 Device fault 69 Communication buffer overflow 27 Out of paper 70 Permission denied 39 CASE ELSE expected 71 Disk not ready 40 Variable required 72 Disk media error 50 FIELD overflow 73 Advanced feature unavailable 51 Internal error 74 Rename across disks 52 Bad file name or number 75 Path/File access error 53 File not found 76 Path not found REGISTRATION ============ DizIt Pro is released as user support software (aka SHAREWARE). I don't expect you to register the program if you don't like it or if it doesn't meet your needs (just stop using it). But if you continue to use DizIt Pro after a reasonable evaluation period of up to 14 days, you are required to make payment for the program or stop using it. I had previously distributed DizIt Pro in a fully functional program, and only appended a marker "->DizIt Pro" in the description. Unfortunately, several users seem to feel it's better to steal than pay and used DizIt Pro to do the dirty work and then ran a utility to remove the marker. End result, people who thought the program useful but didn't want to shell out the $20 to register (here's one program that saves them literally hundreds of hours of work over time and they wouldn't pay the $20). Since no one ever knows (besides the sysop) who's registered or not, especially when the marker is removed, I've made a few changes starting with v1.5 (sorry folks, I hate to do it!): The following options are added once the program is registered: 1. Virus scanning 2. Descriptive file extensions 3. File age limits You'll still find DizIt Pro to be quite full featured in it's non-registered form. But to get additional features you'll need to register the program. Once registered, these new features will automatically be enabled for your use. In addition, the marker "-> DizIt Pro" will no longer be appended to the description. Registration is only $20 and will include unlimited free upgrades and support via my BBS. Many hours have gone into making DizIt Pro what sysops have been asking for. It can save you hours of time in uploading files to your board locally, and your time saved should more than offset the $20 price. Please use the form REGISTER.FRM included with the program to register DizIt Pro. If this file is missing, send a check for $20 (US funds) to: Robert Neal 317 Hickory Romeoville, IL 60441 Please include your BBS name as this information will be used to create your unique registration key file. You may receive your registration file via my support BBS (but please be sure you have an account established on my BBS so that I can leave this information in a private message to you) or via the US Mail. Please indicate your preference. REGISTERED USERS OF DIZIT: Registered users of DizIt may upgrade to DizIt Pro at half price. SUPPORT =================== If you have any questions, comments, problems, suggestions for enhancements, etc., I may be reached at my support BBS or by mail. In addition, you may send a message to me on the RIME conferences to my BBS "1255", I regularly monitor the messages in the Sysop, BBS and PCBoard Support conferences. I can also be reached via Prodigy at PNSP01A. I can also be reached via Internet mail at bob.neal@corpsoft.com and via FIDO Netmail at bob neal@1:2235/886. You may register online with your Visa or MasterCard by calling my BBS and typing CHARGE at the main menu prompt. LEGAL INFORMATION =============================== This program is provided on an "AS IS" basis. No warranty of any kind is expressed or implied. YOU USE THIS PROGRAM AT YOUR OWN RISK. I take no responsibility for any damage caused directly or indirectly from the use or the inability to use this program. VERSION HISTORY: v1.6 - This release is only a day after the previous version. But The problem with tasks being incremented under Novell Lite surfaced again. As it turns out, it wasn't my routine that was causing the problem (that's good news). After lots of digging around through my code I finally found that the shell to PKUNZIP was causing the problem. Through trial and error I've now included a new parameter ("-3") on the command line being passed. With testing on my system this appears to solve the problem as the tasks no longer increment on a test sample of 200+ files. The -3 parameter informs PKUNZIP to disable 32 bit instruction useage, don't know why it was causing the problem, but nice to get this resolved once and for all. This new parameter should not cause any problems, but if you do encounter a problem, please let me know. 1.5 - Added new option to limit the age of files by number of days you specify. Run DPROCFG to update your .CFG files. Added -O parameter to the PKUNZIP command being passed when extracting FILE_ID.DIZ and DESC.SDI. I never thought that this would be necessary, after all you can't have two files of the same name in a ZIP. Well, turns out you can, ZIP's created under other operating systems (OS/2 for example) allow the same filename, but different case (one upper, one lower), but when UNZIP'd it ends up being a duplicate to DOS. Revised routine for the screen save and restore when performing shelled routines. The previous routine would irregularly cause Novell Lite networks to increment the number of tasks. Don't know why or how (Novell was no help), but this is a work around and after fixing this it seems that the end result is a faster save and restore routine to boot. 1.4 - Add additional parameter to the command line being passed to call SCAN to ensure that all files are scanned properly. Modified file open statement for accessing the UPLOAD directory. Had several users report that DizIt Pro would abort with an error 70 if the UPLOAD file was being accessed by another node. DizIt Pro now properly open file under a shared mode. Fixed date routine, if a GIF, EXE, TXT, etc was added by DizIt Pro and you had the use newest date option enabled the file would be imported with a blank date. File now verifies that the newest file date and if not found it will use the current date. 1.3 - Minor upgrade to address some unique 'buglets'.... When in RANDOM file selection mode, the number of files found in the directory is now displayed along with the number of files to be imported. Fixed a problem with the reformatting routine. Found that a it could get stuck in a loop under certain situations. More than 4,000 files processed before I saw the problem occur. Fixed a problem with the NEWEST FILE date routine. Under some circumstances the routine was dropping the last character of the date field. Fixed a problem with the registration routine. Under some circumstances it would report that a registration number was invalid. 1.2 - Added option to word wrap if description >45 characters Added descriptive file extensions. If a file is unable to be moved to the new upload directory, the file extension can be optionally changed to describe why the file couldn't be moved. .VIR - Possible virus found in file .IDX - File already exists, found in index file .DIR - File already exists, found in upload directory .NDF - No description found If file exists in INDEX or DIRECTORY, file is now moved to BADDIR directory indicated in the configuration file (found that the file was being kept in the original directory. Added internal routine to move the file, this should speed up the processing as program no longer needs to shell out to DOS COPY command. Added feature to select files at random to be imported. This is nice if you have a collection of files sitting on your hard drive to be uploaded but don't want to do them all at once. You can now select how many files are imported each time DizIt Pro is run by using /Rxx (where xx is the number of files to be selected) on the command line. Revised the character to use to indicate that multiple files are to be searched for descriptions from "!" to PCBoard's standard of "%" - why didnt' I do this originally? :) The "!" will still be supported, but you should convert the configuration file to the "%" as future versions may not. Previously all output from other programs called by DizIt (ie PKZIP, SCAN, F-PROT, etc) was being surpressed. If someone had a problem with the program being called, you didn't know why the error ocurred. I've now added screen save and restore functions so that the output can be shown, but the screen display will be restored upon return from the called program. You can now optionally select whether the output is display or surpressed. v1.1 - Fixed problem with EOF marker being found in import description files. Increased the field for the file size in the log and PCB's DIRx file, will now allow filesize up to 99,999,999. Program now strips out directory names from listing of files to be processed. These were previously being shown as invalid file types (which they were), they are now ignored entirely. File size is now updated after adding the ZIP comment. The file size was previously read before the ZIP comment was added, this then caused a slightly different file size to be reported in the PCB DIRx file. Added new option, you can now select if the 45 character restriction in the .DIZ and .SDI is enforced or not. In the previous version, if the size was > 45 characters, the description was ignored. You can now select if this is ignored, or if not, the description file will be imported but truncated at 45 characters. v1.0 - Initial release