VSORT Version 1.0 - Copyright 1989 Roger E. Donais GENERAL: VSORT is a DOS Sort Filter with command line format and options similar to the DOS Sort utility. The input file is expected to be a carriage return - line feed delimited ascii text file. Source lines may be random length, but cannot exceed 4096 characters. Maximum size of file is typically limimted to the available disk space. Type VSORT /h to obtain an on-screen command/option summary. When invoked with no parameters, VSORT will simply sort input from the standard input device (CON) to the standard output device (CON). To terminate input, press ^Z (Control plus Z) followed by ENTER. The sort will *NOT* be attempted if there is than 48k of memory, and will abort at the end of the first pass if there is insufficient memory for the merge buffers. The elapsed time to reach this point will depend on your disk through-put, which is typically 3% longer than the time it takes to read and write the file in question using a 25 mHz 486 with a 680 Meg ESDI Drive reporting a 16ms access and 1012 Meg transfer rate. USAGE: vsort outfile [/R] [/+n] [/P] where outfile is a standard DOS redirected output specification. /R sorts in reverse order (default = ascending)tarting /+n sorts starting at column n (default = column 1) /P is an optional DOS drive/path specification for the intermediate work file. NOTE: Vsort uses code page 437 to establish ranking of characters and treats upper and lower case letters as equal weight EXAMPLE: vsort temp.txt /PD:\ MESSAGES: All runtime messages are written to the stderr device, and will, by default, be directed to the crt display. When invoked with an /h parameter, VSORT will display a command-line/option summary. Additional messages that may be displayed are - ** SORT COMMAND ERROR: ** indicates an error was detected in the command line. The command line will be displayed with a carat (^) marking the position where the error was detected. ** insufficient memory ** indicates that there is not enough memory available to provide the necessary merge buffers, or at startup there was less than 48k of memory is available. ** unable to create intermediate file ** indicates an error occurred when VSORT attempted to create the intermediate work file (SORT0000.$$$). ** intermediate file write error ** indicates an error occurred when writing to the intermediate work file. ** output file write error ** indicates an error occurred when writing to the redirected stdout file handle. SYSTEM REQUIREMENTS: This release of VSORT was tested using a 9-Meg file consisting of 128,000 seventy (70) character carriage-return line-feed delimited records. A TSR was used to consume all but 64k of available memory. It is extremely difficult to estimate the resources required to sort a file of variable length lines. However, a general rule of thumb is that the available free disk space must be at least twice the size of the original file. This may exist on two separate drives, but each of the two drives must have free space at least equal to the size of the original file. Determing the number of merge blocks, or estimating the memory required to perform the merge pass is well beyond the scope of this guide. You will know if the existing resources are sufficient to complete the sort by the end of the first pass. The elapsed time to reach this point will depend of your disk through-put, and will usually be only 3% longer than the time it takes to read and write the file in question. The 3% factor is based upon tests performed using a 25 mHz 486 and the 16ms access and 1012 Meg transfer provided by a 680 Meg ESDI Drive. ----------------------------------------------------------------------- --- The legal Stuff --- VSORT includes trade secrets and confidential information, which is the copyrighted intellectual property of Roger Donais. VSORT may be freely copied and distributed on a non-profit basis, but may not be sold or traded for monetary value, nor used commercially without the written consent of the author. VSORT is provided without warranty, expressed or implied, including but not limited to fitfulness for a particular purpose. The author does not guarantee the accuracy of the program and accepts no responsibility for its use. Roger Donais (Compuserve ID: 70414,524)