

:                 VLIST - An Enhanced "FIND"
                     Version 7b - 2 Dec 95
_______________________________________________________________________

   by P.Mihok - VMV Software - 5694-4 Hwy7E.Unit 193 Markham Ont L3P 1B4

                   --------Dec 1995----------
_______________________________________________________________________

:WHAT IS IT?

  VLIST is a little utility to search the contents of any kind of
files, including EXE and COM files, for an ASCII string.

  I made it because I keep needing to find strings in spreadsheet and
word processor and database files, trying to locate the last time I
wrote to a certain person, for example, or the last invoice sent to
a certain customer, etc., and Dos's FIND often cannot look inside
those files. Also, I frequently need to figure out a version number
on an EXE file when I am checking software I have written.

  Also, I wanted more information about where in the file the desired
string was located, than FIND gives me. So I added a peek window so you
can see what is all around the discovered string.

  You can also look inside a ZIPFILE to find whether a particular file
is in there. ZIPPED files contain the file names in plain ASCII,
embedded within them. (I haven't decided whether it would be useful
to anyone to look within the zipped files themselves for the zip-
encoded ASCII strings ... it would be slow, but it might be worth doing.
I don't know, though, whether it would violate the LZW patent, nor
whether I would be able to handle every kind of zipfile. I am still
working on this, Sept 1995.)

  Additionally, you can print out selected results now from the 
scrollable window. I was also considering adding extended DOS search
capabilities so you weren't restricted by the DOS' DIR limitations.
Register and you'll get whatever upgrades have come down the pike!

  I thought that others might also need such a utility, so I'm sending
it out as a shareware package. Private individuals are welcome to use
it for free, though it would be proper to send me $5 or so for your use
of it. Corporate users can get a site license for $50, for unlimited
installations within a site. Schools & churches can use it for free
but please keep the documentation with it.


--------------------------------------------------------------------

:HOW TO USE - from command line:

 You can type

VLIST /?

 for a help screen which tells you how to use VLIST from the command
line.

 The utility can run from the command line or it will give you an
edit box into which you can type your string, if you invoke VLIST
without any parameters, ie.

VLIST

 Your search string can be around 34 characters in length, and you
can specify wildcard files in another directory, or a single file
name.

VLIST "Search String" c:\OTHERDIR\*.txt

or

VLIST word thisfile.exe

:NONVERBOSE:
 In order to avoid having long lists of files that do not match
displayed on the screen, you can use the -0 command line option:

VLIST -0

or

VLIST "string" thesefls.fol -0

June 15 -
I just added a menu of checkboxes in the software to allow
you to set your parameters there, and was going to add a preference
save feature as well... however I don't want to get TOO elaborate.

 I should mention that I just used it the other night to find the
files that went with a feature I wanted to use in some software
that wasn't properly documented. The software complained it could
not find a file that belonged with it. I couldn't find it either.
So I used VLIST to search the disc for all the files that had that
feature name listed in them, and 30 Megabytes later I found a com,
an exe and a sys file that matched. I put them into the group and
presto!

Sept 1995 -
 I got a bug report that sometimes VLIST could lock up the machine
if you were editing the command line string within the software.
I was kind of tired of that old version of VLIST anyway, so when
I got some time I rewrote it. Now it works with your DOS mouse,
and it has a scrollable screen you can use within the software to
view or print! It only displays up to 5000 lines, though. I didn't
think you would need more. Seems to me a 5000 line result sort of
indicates too-broad search criteria are being used.
 I also fixed it so it now shows the WHOLE line, not just the part
up to the discovery of the word.

-------------------------------------------------------------------
:OUTPUT -

:a)COMMAND LINE:
 You can direct the output of VLIST through a pipe, for example

VLIST "STRING" *.TXT |MORE

uses the "MORE" pipe (interrupts scrolling a page at a time)

or direct the output to a printer or file,

VLIST "STRING" *.DOC >prn

 prints the file, or

VLIST "STRING" *.DOC > TEXT.LST

 puts the output into a text file named TEXT.LST which you can
open in a window of your application to refer to as you work.

:b)WRITE TO FILE:

  You can specify a file to be written, from within the software.
Just name a file or use the default. If your result has more than
5000 lines and you cannot use the scrollable list, you can still
write it to a file and view the result with something else...

:c)SCROLLABLE LIST:
 
 Up to 5000 lines can be displayed and scrolled with keys or the
mouse. Use pageup, down, up and down arrows, home and end keys,
or the mouse just scrolls using the little arrows shown at the side
of the list!

____________________________________________________________________

:WHAT DOES IT DO?

 VLIST scans through the file, counting the characters and lines,
and checking the characters it finds against the search string.
It proceeds right through the file to the end, ignoring any EOF
(End Of File) marks or NULL values (which confuse FIND). As it
locates matching strings, it prints the location of the match and
the name of the file, the line number and the character number,
and a sample of the text found at the location.

COMMAND LINE OUTPUT:
 VLIST uses standard print-to-screen output, like any DOS utility,
so you can handle the output stream with DOS pipes and redirection.

   VLIST can only handle file lists up to 499 files long, which I
thought was ample. (If not, let me know!) The reason is, it
collects the file names into memory and then opens the files one
at a time. Things are done this way to enable it to find files over a
network, and to permit multitasking to happen. (However, VLIST doesn't
load the file, but scans it. Where the network is heavily loaded, this
can be slow unless the files are transferred to a local cache.)
   Since the file names are loaded into memory, I arbitrarily chose
499 names as what I thought a reasonable limit.
   (If you have more than that number in a directory, I would
suggest you split some into subdirectories simply as a matter of
common sense, to keep things manageable, even aside from VLIST.)

SCROLLABLE LIST:
  VLIST loads the lines into RAM until it either runs out of new
discoveries of the desired string, it runs out of RAM, or it runs
up to 5000 lines, when it will drop out. I don't see why this should
be a limitation, though, as it seems to me you could narrow your
search criteria to get a manageable number of results!

__________________________________________________________________

:HISTORY:


 VLIST - June 14 1995 - first release to an eagerly waiting world
(this version was pretty primitive, and after seeing some friends
using it, I decided to add an edit screen and mini menu.)

 June 18 and Subsequent: A trickle of small bills was anticipated.
<g> I have been using this for a while now and it seems very stable.

 June 23 - I discovered a problem with checking long directories
in different paths, which appears to be fixed now. (It arose as a
result of some changes since the June 14 version. I gave it a heavy
workout on two machines, and everything seems really solid now.)

I'm still trying to decide whether it would be worth dynamically
unzipping files to search their contents... would anyone pay for
a utility that does that? I write in C, so it wouldn't go as fast
as actually unzipping the file and then using VLIST on it. Maybe
I ought to do some inline assembly code here...

 Note - feel free to make any suggestions to improve the utility!
In fact, please write to me anyway! I haven't received that trickle
of small bills, so some E-Mail would really help make me feel
better about having done all this work.

 Sept 15 - I have been using it on a regular basis and got really
bored with the screen appearance. So I rewrote the whole thing.
It now works with mouse, has a scrollable list from which you can
print your result, and it allows you to name the file you want to
write the result to (if you do) from within the software. It also
looks a lot better in my opinion. I even added a little fancy
wipe for the scrollable list, which gives me pleasure to watch,
and is therefore more fun than the boring old print-to-screen
output from before. (Incidentally, some testers complained about
the screen appearance. If you would like VLIST but want it to
look some other way, let me know. I kind of like the way it looks
myself, but realize everyone's taste is different.) 

  I'm trying to adapt it to Visual C++ now, so I can use it in
Windows! (And speaking of tastes being different! I absolutely
DETEST Windows. I tried to customize it but I still loathe it
with a passion. Sigh. I find Windows ugly as heck and tiresome
as all get out to use. So I really DO understand if you want a
different appearance for VLIST!)

 I will also make it FIND a file the way WIZ does, anywhere on
your hard drive, using any kind of search parameters,
rather than the tiresome restrictive DOS ones... Incidentally,
if Ray Van Tassle is anywhere to be found, let me know, I owe
him five bucks.

Oct 5 95 - Now you can register online at C-Serve, in IBMAPP
 forum using GO SWREG. The ID number is 7833. I found a problem
 in the sample window with long paths, and someone spotted a
 failure to locate certain types of repetitive strings. So I
 fixed both of these for the registerable version upload!

Oct 21 95 - Someone reported problems with very long file lists,
 and in the course of locating that bug I found another one! It
 has now been really heavily worked out with truly humungous
 files, directories, etc. without problem. I also added some
 small enhancements. If you notice anything missing or still
 needing to be fixed, let me know!

15 Nov 95 - It appears my previous release wasn't released, and
 so a version with a bug in it has been out there for some time.
 Here is a bug fixed version. (The bug consisted, again, of
 problems with very long search lists. That is, it seemed to
 overwrite part of the screen with a random character, which I
 attributed to a string overflow. Once it even lost its limits
 on the peek window, but I haven't been able to make it do this
 again with the current upgrade version, even doing the exact
 same sequence of searches ten times over... ) There is a great
 deal of randomness in directories and random file contents and
 so forth, so it's tricky to make sure nothing can screw up a
 speed optimized routine like this one. 

2 Dec. - I never released the above because I was not happy with
 it, kept finding files that it did not work properly with. For
 example, I was getting errors in the character number. I finally
 added some correction factors (which slow the search very slightly,
 about 5 percent) to fix the above listed bugs and similar related
 problems, added scrolling ability to the sample window, and
 some more information onscreen. The next release, if any, will
 have the ability to keep on keeping on with more and more files
 beyond the previous limits, and possibly have a faster assembly
 language search, restore screen capability (for when you accidentally
 wipe out your found screen) and the ability to paste a directory
 definition from DOS. However, NOBODY has contacted me about this
 software, so it seems a waste of time... though maybe the above
 bug was the reason!


-----------------------------------------------------------------

:DISCLAIMER:  - VMV Ltd. assumes no responsibility for the 
consequences of any application of any software product. Although 
all software has been carefully and thoroughly tested before 
release, VMV Ltd. assumes no liability for any software or 
hardware incompatibilities, for loss of data, disc damage, nor for 
any other consequences resulting or claimed to result from the use 
in any manner of their software. Use of the software is entirely 
by the user's choice and at the user's risk. Resale, 
redistribution and copying of this software at cost only, is 
freely permitted, if the shareware package is entirely unaltered.

-----------------------------------------------------------------

VMV Software - P.Mihok 
:Register:

5694-4 Hwy 7 E. Unit 193, Markham Ontario,Canada  L3P 1B4

:Support:

102547.3334@COMPUSERVE.COM

Tel/Fax - 905-471-5440

FAX (8-8 EST) 905-471-9824

:REGISTER:

 Please mail a cheque, money order or even small bills to the
above address, or register online at GO SWREG on CompuServe,
using registration ID number 7833. For your money you will get
a copy of the enhanced version that will give BOOLEAN search
criteria (that is, you will be able to find occurrences of
one string AND/OR/NOT another string in the same general area 
of the file.) EXCLUDE options are also under consideration.
I may also add other features, if I get requests for them.



------------------------------------------------------------------


