: 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. 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. ------------------------------------------------------------------