[Lazarus] Feedback requested: File Search, a visual file search utility

classic Classic list List threaded Threaded
7 messages Options
Reply | Threaded
Open this post in threaded view
|

[Lazarus] Feedback requested: File Search, a visual file search utility

Free Pascal - Lazarus mailing list
If anyone is interested I've posted another hopefully useful program along with the source.

https://www.getlazarus.org/apps/filesearch/

The File Search utility is a stand alone tool for Mac, Windows, and Linux to search for files using a variety of criteria including containing text, file size, and file dates. The full source code is available on github and it has no dependencies other than the LCL, so anyone should be able to compile with a default installation of Lazarus.

I believe the program is bug free and pretty much feature complete per my original idea. If anyone would like to leave a comment of make a suggestion I'd open to your ideas.

--
_______________________________________________
lazarus mailing list
[hidden email]
https://lists.lazarus-ide.org/listinfo/lazarus
Reply | Threaded
Open this post in threaded view
|

Re: [Lazarus] Feedback requested: File Search, a visual file search utility

Free Pascal - Lazarus mailing list
On Wed, Sep 25, 2019 at 7:33 AM Anthony Walter via lazarus
<[hidden email]> wrote:

> The File Search utility is a stand alone tool for Mac, Windows, and Linux to search for files using a variety of criteria including containing text, file size,
> and file dates.

First of all: NICE!

You asked foor feedback.

You search the entire folder for each pattern in a loop (e.g. 10
patterns, 10 times a FindFirst/FindNext loop)..
Then you see if a given match already is in the list (with IndexOf,
whic will be slow if you have lots of items).

An alternative would be to use a TMaskList and use it's MatchesMaks
method (and search the folder with AllFilesMaks).
This way you can be sure no double entries will be found.

If the count of patterns is 1, then an optimization could be to not
use a TMaskList but let the OS do the filtering with
FindFirst/FindNext.

Using a TMaskList offers you the possibility to let the user decide
wether the patterns are case-sensitive.
AFAICS, then as it is now, patterns are case-sensitive on *nix systems.
This makes finding e.g. all JPEG's a bit awkward on those platforms
(you would have to specify each and every possible mix of uppercase
and lowercase spelling of '*.jpg;*.jpeg').

I recently adapted TShellTreeView/TShellTreeView to do it like that.
(Previously it used a TAvlTree for this purpos, which is faster when
searching than a TStringList)


--
Bart
--
_______________________________________________
lazarus mailing list
[hidden email]
https://lists.lazarus-ide.org/listinfo/lazarus
Reply | Threaded
Open this post in threaded view
|

Re: [Lazarus] Feedback requested: File Search, a visual file search utility

Free Pascal - Lazarus mailing list
On Wed, Sep 25, 2019 at 7:38 PM Bart <[hidden email]> wrote:

> An alternative would be to use a TMaskList and use it's MatchesMaks
> method (and search the folder with AllFilesMaks).

As you can see, my fingers struggle with the keyboard ;-)
Everywhere it says *maks, you should read *mask.

--
Bart
--
_______________________________________________
lazarus mailing list
[hidden email]
https://lists.lazarus-ide.org/listinfo/lazarus
Reply | Threaded
Open this post in threaded view
|

Re: [Lazarus] Feedback requested: File Search, a visual file search utility

Free Pascal - Lazarus mailing list
In reply to this post by Free Pascal - Lazarus mailing list
Thanks. I'll look into TMaskList. I assume you mean this bit of code?


I am not sure how much this slows things down, and the checking if a file has already been added only happen on per directory basis, meaning the list is emptied with each folder and the search if already exists is reset to zero each time search enters a new folder. I will look into this though.

Thank you for your feedback.

--
_______________________________________________
lazarus mailing list
[hidden email]
https://lists.lazarus-ide.org/listinfo/lazarus
Reply | Threaded
Open this post in threaded view
|

Re: [Lazarus] Feedback requested: File Search, a visual file search utility

Free Pascal - Lazarus mailing list
In reply to this post by Free Pascal - Lazarus mailing list
Hi Anthony,

It looks great!

If you were looking for new features, please consider the following features:
  1. Show the snippets from the file where the content was found, with some context lines around the matches.
  2. Allow specifying regular expressions for content search (optionally).
These are killer features that any file content search app must have in my opinion.

You can see an example implementation in AstroGrep (Windows only):
http://astrogrep.sourceforge.net/screenshots/

Denis


On 25/09/2019 06:32, Anthony Walter via lazarus wrote:
If anyone is interested I've posted another hopefully useful program along with the source.

https://www.getlazarus.org/apps/filesearch/

The File Search utility is a stand alone tool for Mac, Windows, and Linux to search for files using a variety of criteria including containing text, file size, and file dates. The full source code is available on github and it has no dependencies other than the LCL, so anyone should be able to compile with a default installation of Lazarus.

I believe the program is bug free and pretty much feature complete per my original idea. If anyone would like to leave a comment of make a suggestion I'd open to your ideas.


--
_______________________________________________
lazarus mailing list
[hidden email]
https://lists.lazarus-ide.org/listinfo/lazarus
Reply | Threaded
Open this post in threaded view
|

Re: [Lazarus] Feedback requested: File Search, a visual file search utility

Free Pascal - Lazarus mailing list
In reply to this post by Free Pascal - Lazarus mailing list
On Wed, Sep 25, 2019 at 7:51 PM Anthony Walter via lazarus
<[hidden email]> wrote:

> Thanks. I'll look into TMaskList. I assume you mean this bit of code?
>
> https://github.com/alrieckert/lazarus/blob/master/components/lazutils/masks.pas

Yes, it's in the masks unit.

Bart
--
_______________________________________________
lazarus mailing list
[hidden email]
https://lists.lazarus-ide.org/listinfo/lazarus
Reply | Threaded
Open this post in threaded view
|

Re: [Lazarus] Feedback requested: File Search, a visual file search utility

Free Pascal - Lazarus mailing list
In reply to this post by Free Pascal - Lazarus mailing list
Bart,

Thanks for suggesting TMaskList. I added it in and it works much better than the normal FindFirst pattern matching. It also allowed me to remove the duplicate checking.

Regarding TShellView, you might want to look at my Shell Control library. It is explorer for Windows, as well as a few other controls including a shell path with breadcrumb drop down menus, and a shell bubble type control for listing common folders. The source code is Windows only, but it's now available for free:


and sources:


Feel free to modify the sources to work under Lazarus.

--
_______________________________________________
lazarus mailing list
[hidden email]
https://lists.lazarus-ide.org/listinfo/lazarus