Searches given word (string) in provided directory and subdirectories. The program has graphical interface based on the Qt Widgets library.
- Progress bar for indexing and searching
- Opens file with highlighted found words
- Iterates over found words
- Listener on files changes
- Indexing and searching runs on separate thread to not to hang application
- If file is large then indexing/searching computed multithreaded
- Cancels task if needed
Indexing:
- for each file:
- make sure that file is non binary (using magic numbers)
- read file and add all trigrams to set
Searching:
- compute trigrams of the given word (string)
- for each file:
- check that file trigrams contain all word trigrams
- find words using regex