You are allowed to use this program for testing and evaluation
until a next version is available.
The program, in its current version, may be installed on as many
machines as you like.
You are free to distribute the program provided that you
include all the files in the original archive without any modification.
You are not allowed to sell the program, but can charge
a reasonable amount to cover the cost of the distribution media.
Under no circumstances will the author be liable for any loss
or damage that may be derived from the use of the program.
ACDataSeeker is the copyrighted property of Alessandro Felice
Cantatore, Bitonto, Bari, Italy.
The use of the program implies acceptance of the conditions stated
above!
Introduction
As a forgetful developer, I tend to use quite often the old "Seek and
Scan Files" (PMSEEK.EXE) included with OS/2, to find text in the system
header files or other source files, or just to find some old news message
I had saved a few years ago.
Unfortunately PMSEEK.EXE has serious flaws and using it is not always
a pleasent experience, so I decided to code a more functional and feature
rich program.
The program is currently quite basic as it is still lacks some essential
PMSEEK features like the ability to drag files to an Enhanced editor window
or to edit the selected file. On the other hand it already has some little
extra option and a more attractive (I hope) interface.
Even if the program is far from complete, I decided to make it available
in its current stage, as I want to start to get some feedback so I can
easily modify it, while working on implementing the still missing features.
What's new
Version 0.42:
the wildcard matching routine was buggy. It has now been replaced
with a new correct and very fast algorithm.
the program settings were not saved if the program was closed
via the window list or via system shutdown.
the algorithm used for the case insensitive, and boolean searches
have been completely rewritten as they were not working properly.
in some systems, on the first execution, the program window has
an incorrect size. I failed to reproduce the problem on my machine, anyway
made some little modifications which I hope will solve that problem.
an elapsed time indicator showing the time employed to perform
a search operation has been addded.
some notes about
how to use metacharacters (alsko known as wildcards or global characters)
in the names of the files to search for have been added.
Version 0.41:
a serious memory leak problem has been corrected.
Installation
At the moment the program just consists in a single executable and
since it does not use any entry in the CONFIG.SYS or in the system INI
files, you can copy the file anywhere you like and use the WPS to create
a program object on your desktop or where you prefer.
The program, once started will create an initialization file in the
executable path.
To uninstall the program just delete DATASEEK.EXE, DATASEEK.INI and DATASEEK.HTML.
Features and settings
The current working features are:
Multithreading
All disk operations (scanning the disk, reading files, etc.) are performed
via a separate thread.
No drive scan on startup Unlikely PMSEEK.EXE you will not see any "Drive not
ready" message when starting multiple instances of ACDataSeeker.
Multiple file names
You can specify multiple file names in the Files to search for:
field using the an OR symbol (a vertical bar ' | ') to separate the
file masks.
For instance:
D:\*.TXT|D:\*.HTM*|E:\*.TXT|E:\*.HTM*
will find all the files in the drives D: and E: with the extensions
TXT, HTM or HTML (and other extension starting with HTM).
Multiple text strings You can specify multiple text strings separating them with
the OR symbol ( | ) or with the AND symbol ( & ). You can also use
the escape character ' ^ ' to make the program interpret |, &
and ^ as real characters rather than symbol.
For instance if you specify int the Text to search for (if any):
field :
PFNWP|MIA_CHECKED|MIS_SINGLE
The program will find all files which contain at least one occurrence
of PFNWP or MIA_CHECKED or MIS_SINGLE.
If you instead specify:
PFNWP&MIA_CHECKED&MIS_SINGLE
The program will find all files which contain at least one occurrence
of all the specified words.
You cannot use mixed or complex boolean logic: the text strings
to be searched must either be separated by OR symbols or by AND symbols.
So in the following search string:
PFNWP|MIA_CHECKED&MIS_SINGLE
only the first OR character is interpreted as a boolean
symbol and the program will look for the strings "PFNWP" or "MIA_CHECKED|MIS_SINGLE".
File and text to search history The data of the searched files and text strings are saved in
drop down boxes, so in case you have to make a new search of some text
in a different path or of new text in a path you had already researched,
you just have to select the data from the drop down lists.
Result history A drop down box showing both the details of the searched files
and text allows you to recall the result of a previous file search.
Separate file and text lists There is a separate list for displaying the file with met the
search criteria. Once a file is selected the text list is filled with all
the occurrences of the found text.
Two arrow buttons allow to resize the two lists according to your needs.
Optionally display file date, time and size
You can choose from the menu what level of details you need.
Optionally sort the found files list
You can display them unsorted, sorted ascending or descending. Sorting
depends on the full file data, so if the file date are displayed the files
are sorted according to the current date, if only the file size is displayed
the file are sorted according to their size, if no additional details
is displayed the file are sorted by name.
Optionally display line numbers and hide leading spaces You can display line numbers in the list of found text. You
can also optionally strip the leadings spaces (but you have to repeat the
research to do that).
Resizeable and customizable interface
You can use the font palette to change the font used by the main window:
drag a font from the palette and drop it on the window border. The window
size and layout will change to adapt to the new font size.
You can also use the font palette to change the font used by the entry
fields and result lists.
In order to get aligned entries in the result windows you should select
a monospaced font (Courier, System VIO, etc.) and drop it on any entry
field or list window, the other entry field/list windows will automatically
adopt the new font.
You can also resize and move the window where you like. The layout
of the inner controls will adapt to the new window size.
You can also drop a color on the Search , Stop or Help buttons.
The window size and position, the fonts and the button colors are saved
in the DATASEEK.INI file and restored the next time you start the program.
Subdirectory search
Like with PMSEEK.EXE you can recursively search throught subdirectories.
Exclude binary files
You can optionally exclude files containing NUL characters (i.e. characters
with ASCII value 0).
Case option Like with PMSEEK.EXE you can perform case sensitive or case
insensitive searches.
Settings dialog
A settings dialog is provided in order to set the default view and
search options, the size of the result history and the names of the default
editor and command shell (these features will soon be implemented).
Main window
This first version of the program is based on a single resizeable window.
A future version (2 ?) might be based on multiple windows in order to
provide more and promptly available search options.
Here is a description of the various window controls.
Files to search for:
You enter the specifications of the searched files here. Wildcard characters
as ' * ' and ' ? ' are allowed as usual.
You can specify multiple file names. See the notes above for more details.
Once you click on the Search button the
entered data are saved in the embedded list and can be recalled any time
later by selecting them.
To delete an entry from the list, select it and press Ctrl + D.
To delete the whole list, give it the focus and then press Ctrl + Shift
+ D.
Text to search for (if any):
You optionally enter the text to be searched in the files(s) you specified.
Currently no wildcard characters are allowed for searched text, although
I might add GREP and E-GREP search capabilities in near future.
You can use boolean operators to search
for multiple text sentences. See the notes
above for more details.
Once you click on the Search button the
entered data are saved in the embedded list and can be recalled any time
later by selecting them there.
To delete an entry from the list, select it and press Ctrl + D.
To delete the whole list, give it the focus , BOOL bRemoveand then press
Ctrl + Shift + D.
Search results history:
Once a search operation completes succesfully, the search criteria
are added to this drop down list in the following format:
where XXXX is the search attribute mask, i.e. the mask of the
options used to perform the search operation:
R
Recursive search.
T
Text files (i.e. the Exclude binary files option).
I
Case insensitive.
B
Boolean operators.
When an option is not set it is displayed with a dash ' - ' (e.g. [R-I-]
means that the recursive and case insensitive options were set).
The list of found files and text is also internally stored by the program
so you can select any time a previous search criteria to get back the
results.
To delete an entry from the list, select it and press Ctrl + D.
To delete the whole list, give it the focus and then press Ctrl + Shift
+ D.
The default limit for this list is 10 entries. You can increase this
limit up to 100 via the Settings dialog.
Files found:
The files satisfying the search criteria are listed here.
Use the View menu items to display more or less details or to sort
the list items.
Down/Up arrows:
These buttons change the height of the Files found listbox.
For instance, if you are more interested in the list of the text lines
matching the search criteria, you can reduce the Files found
list height to the height of one text line, or you can just hide
the Text found list if you are only looking for files.
Text found:
The lines of text contained in the currently selected file and matching
the search criteria are listed here.
You can optionally display the line number and remove the leading spaces.
Search Press this button to start the search operation.
This button is disabled if the Files
to search for field is empty.
Stop This button is enabled only if the program is executing a file
search.
You must use it to interrupt a search operation.
Help Not yet working.
Menu File
Currently not fully implemented (only Exit works).
Open
This will allow to load previously saved search criteria (i.e. what
was in the Files to search and Text to search
lists) or previously saved search results.
Save This will allow to save the current content of the Files
to search and Text to search lists, the currently
displayed search result or all the full list of search results.
Search results will optionally be save as readable text files or as
re-loadable binary files.
You can use Ctrl + S as keyboard shortcut for this command.
Exit Just terminate the program. You can use F3 as keyboard shortcut
for this command.
Menu Selected
Currently nothing in this menu works!
Edit
Will start EPM.EXE or any other editor according to the user preferences.
You can use Ctrl + E as keyboard shortcut for this command.
Open
Will open the selected file according to the current WPS association.
You can use Ctrl + O as keyboard shortcut for this command.
Settings
Will open the settings notebook of the currently selected file.
You can use Ctrl + P as keyboard shortcut for this command.
Copy to clipboard Will copy the full name of the currently selected file to the
clipboard.
You can use Ctrl + C as keyboard shortcut for this command.
Copy All to Clipboard Will copy the whole list of found files to the clipboard.
You can use Ctrl + Shift + C as keyboard shortcut for this command.
Folder
Will open the folder containing the selected file.
You can use Ctrl + F as keyboard shortcut for this command.
Command line
Will start the command shell selected by the user in the Settings dialog
setting the path of the currently selected file as the working directory.
You can use Ctrl + L as keyboard shortcut for this command.
As parameter ...
Will allow to execute a command againgst the currently selected file.
You can use Ctrl + M as keyboard shortcut for this command.
Menu View
Through the items in this menu you can modify the display of the found
files and text lines.
Show file date
The list of the found files includes the file last write date before
the file name.
Show fle time
The list of the found files includes the file last write time before
the file name.
Show file size
The list of the found files includes the file size before the file
name.
Show line numbers
The list of the found lines of text includes the line number.
Strip spaces
Leading spaces are stripped from the found lines of text.
In this case, to change the display of already found lines of text
you have to repeat the search operation.
Do not sort
List the names of the files in the order they are found.
Sort ascending
Sort the file names according to the first detail displayed (file date,
time, size or name).
Sort descending
Reverse sort the file names according to the first detail displayed
(file date, time, size or name).
Menu Options
The items of this menu allow to change some search options or to display
the settings dialog.
Recursive search
Search the specified file names recursively in the subdirectories of
the starting paths.
Exclude binary files
Skip text search in files which contain NUL character i.e. characters
with ASCII value of 0.
Case insensitive
Do a case insensitive search. If this item is unchecked the search
is case sensitive, that is "CaSe" will not match "case".
Boolean operators
Allow to find multiple text sentences with an OR or an AND logic.
See the previous notes for more
details.
Settings ...
Display the settings dialog.
Menu Help
This doesn't work yet.
Mouse features
As mouse features are intended commands executed by mouse button clicks
or by mouse drag and drop.
These features do not work yet.
Double click on an item in the Files found list
The file is loaded file via the selected editor.
If the selected editor is EPM.EXE and the Shift key is pressed, the
program will load the file in the already running EPM.EXE window (if present),
otherwise a new window will be opened.
Double click on an item in the Text found list
The file is loaded the file via the selected editor.
If the selected editor is EPM.EXE the cursor is moved to the currently
selected line.
If the selected editor is EPM.EXE and the Shift key is pressed, the
program will load the file in the already running EPM.EXE window (if present),
otherwise a new window will be opened.
Drag of the selected item from the Files found
list to an EPM.EXE window
The file is loaded in the EPM.EXE window or is brought to the top if
already present in the EPM.EXE files ring.
Drag of the selected item from the Text found
list to an EPM.EXE window
The file is loaded in the EPM.EXE window or is brought to the top if
already present in the EPM.EXE files ring. The cursor is moved to the
selected line.
Drag of the selected item from the Files found list
or the Text found list to another WPS window
The file is treated as a WPS object: it can be copied, moved, deleted
(if dragged to the shredder).
Drop a file (no additional key) on the Files to search
for entry
The name of the file (including drive and path) is inserted into the
entry field replacing the previous content.
Drop a file (+ Ctrl key) on the Files to search for
entry
The name of the file (including drive and path) is appended to the
previous content of the entry field using ' | ' as separator.
Drop a file (+ Shift key) on the Files to search for
entry
The file extension (including drive and path - D:\PATH\*.EXT) is inserted
in the entry field replacing the previous content.
If the Ctrl key is also pressed (drop + Ctrl + Shift) the file extension
is appended to the previous content of the entry field using ' | ' as
separator.
Drop a file (+ Alt key) on the Files to search for
entry
The name of the file, including the drive letter and excluding the
path, is inserted in the entry field replacing the previous content.
If the Shift key is also pressed the extension of the file, including
the drive letter and the excluding the path is used.
If the Ctrl key is also pressed the data of the current file are appended
to the previous entry field content.
Drop a file (no additional key) on the Text to search for
entry
The file content (the first line of text ) is inserted in the entry
field replacing the previous content.
Drop a file (+ Ctrl key) on the Text to search for
entry
The file content (the first line of text ) is appended to the entry
field content using ' & ' as separator and the Boolean
operators option is automatically activated.
Drop a file (+ Shift key) on the Text to search for
entry
The file content (the first line of text ) is appended to the entry
field content using ' | ' as separator and the Boolean
operators option is automatically activated.
Drop a file (+ Ctrl + Shift key) on the Text to search
for entry
The file content (the first line of text ) is appended to the entry
field content without any separator.
Drop a file (+ Alt key) on the Text to search for
entry
The full file name is inserted in the entry field.
Startup parameters
The program supports a limited set of parameters as this is a PM program
and there are already various different command line programs to search
for file and text.
DATASEEK -L:<filename>
will load <filename> where <filename> is a binary file
containing previously saved search criteria or search results.
DATASEEK -P:<filename>
will use <filename> as an initialization file instead of looking
for DATASEEK.INI in the program path.
DATASEEK <file to search for> [text to search for]
will start the program, auto-filling the Files to search for
and Text to search for fields.
Notes on metacharacters usage
ACDataSeeker implements metacharacters pattern matching in a stricter way
than the OS/2 DIR command.
As stated in the OS/2 Control program programming guide and reference
:
Metacharacters are characters that can be used to represent placeholders
in a file name. The asterisk (*) and the question mark (?) are the two metacharacters.
The asterisk matches one or more characters, including blanks.
The question mark matches exactly one character, unless that character
is a period. To match a period, the original name must contain a period.
Metacharacters are illegal in all but the last component of a path.
The main difference is in the usage of the question mark character. For
instance while DIR ?.zip lists files named .zip
and, A.zip, ACDataSeeker will list only A.zip
as it makes the question mark match only exactly one character, unless
that character is a period .
Planned features
Apart from the already mentioned, not yet implemented, features, I
might consider adding GREP and Extended-GREP text search and some more
search options (depending on file date, file size, etc.), search in the
EAs or for specific EAs, search in archived files or via plugin DLLs, specialized
searches depending on the file format (i.e. html files excluding the content
of html tags, in source file comments, etc.).
In any case I will leave more exotical features to a future release
as I still have to complete other programs which have been delayed for too
long.
Registration
In this stage of development, no program registration is yet available.
You are free to use this version of the program until a new version
is available.
Once all the planned features will be added I'll decide about registration,
costs (if any) etc.