Автоматизация поиска по файлам

ibelieve

Client
Регистрация
24.12.2012
Сообщения
248
Благодарностей
96
Баллы
28
Ребят, подскажите, вот в Total Commander есть функция поиска по файлам (скриншот), можно ли как-то это автоматизировать через Зеннопостер? Конкретно интересует поиск фраз по txt файлам, находящимся в папках и большом количестве подпапок.
Скриншот 2015-02-23 03.03.32.png
 
  • Спасибо
Реакции: GHU

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 707
Баллы
113
Только перебором всех файлов. И чтением их. И парсингом значений из каждого)
 

LexxWork

Client
Регистрация
31.10.2013
Сообщения
1 190
Благодарностей
786
Баллы
113
C#:
string directory = @"D:\Zen\_scripts";
string filespattern = "*.cs";
string searchstring = "lock";

var searchregex = new System.Text.RegularExpressions.Regex(searchstring,  System.Text.RegularExpressions.RegexOptions.Compiled);

var filelist = System.IO.Directory.GetFiles(directory, filespattern, System.IO.SearchOption.AllDirectories).ToList();

for(int i=0; i < filelist.Count; i++){
    bool isfound = false;
    using (var streamReader = new System.IO.StreamReader(filelist[i], true)){
        while (streamReader.Peek() > 0){
            string line = streamReader.ReadLine();
            if (searchregex.IsMatch(line)){
                isfound = true;
                break;
            }
         }
    }
    if(!isfound)
        filelist.RemoveAt(i--);
}

return string.Join("\n", filelist.ToArray());
 
  • Спасибо
Реакции: sentinel и ibelieve

ibelieve

Client
Регистрация
24.12.2012
Сообщения
248
Благодарностей
96
Баллы
28
rostonix, к сожалению это не самый быстрый вариант при большом количестве файлов. :-) Например, вышеуказанной функции в Тотале нужно время лишь на первый поисковый запрос, и потом, если поиск идёт по тем же директориям, запросы обрабатываются в секунду. :-)

LexxWork
, Спасибо! Попробую Ваш вариант. :-)
 

Lexicon

Client
Регистрация
27.12.2012
Сообщения
1 775
Благодарностей
891
Баллы
113
мммм а можно мне объяснить чем вариант от LexxWork отличается от слов rostonix
Ну кроме того что он сразу кусок кода выложил?))
 

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 707
Баллы
113
Ну то что в коде в одном экшене :-))
 

Lexicon

Client
Регистрация
27.12.2012
Сообщения
1 775
Благодарностей
891
Баллы
113
Видимо кнопочку отложенной отрисовки надо делать кислотных цветов и пестрой и переливающейся)
 
  • Спасибо
Реакции: rostonix

ibelieve

Client
Регистрация
24.12.2012
Сообщения
248
Благодарностей
96
Баллы
28
мммм а можно мне объяснить чем вариант от LexxWork отличается от слов rostonix
Ну кроме того что он сразу кусок кода выложил?))
Это вы, возможно, можете с первого взгляда определить, что из себя представляет код. :-) А т.к. как я ни разу вообще не программист (и не рядом тоже), то чтоб узнать что это за код, мне нужно сперва попробовать его.
 

Lexicon

Client
Регистрация
27.12.2012
Сообщения
1 775
Благодарностей
891
Баллы
113
ну просто кроме как обойти все файлы и посмотреть я не знаю способа быстрее...
точнее они есть но довольно трудоемки и их реализовывать через зеннопостер все равно что удалять гланды через попу...
в общем и целом я не вижу особых различий между кубиками и кодом
 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)