Total Commander Forum Index Total Commander
Форум поддержки пользователей Total Commander
Сайты: Все о Total Commander | Totalcmd.net | Ghisler.com | RU.TCKB
 
 RulesRules   SearchSearch   FAQFAQ   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Расширенный поиск (near, and)

 
Post new topic   Reply to topic    Total Commander Forum Index -> Общие вопросы printer-friendly view
View previous topic :: View next topic  
Author Message
plvtor



Joined: 11 Nov 2007
Posts: 11

Post (Separately) Posted: Sun Nov 11, 2007 02:08    Post subject: Расширенный поиск (near, and) Reply with quote

Как искать по тексту, если надо найти файлы с двумя, тремя, и т.д. искомыми словами, есть несколько вариантов.

А можно ли искать так чтобы находило только те файлы, где искомые слова отстоят друг от друга на небольшом расстоянии?

Т.е. поиск "Иванов Петров" выдает результат только если эти слова, неважно в какой последовательности, находятся в пределах, скажем 100 знаков друг от друга. (предел бы тоже чтоб можно было задавать) .

А если Иванов упомянут в начале текста, а Петров где-нибудь в середине, то в итоговый результат этот файл не выводится.
Back to top
View user's profile Send private message
DrShark



Joined: 21 Oct 2006
Posts: 911
Location: Kyiv, Ukraine

Post (Separately) Posted: Sun Nov 11, 2007 16:22    Post subject: Reply with quote

Нет наверное. Можешь попросить Alextp, м.б. от добавит такую возможность в плагин TextSearch.
Back to top
View user's profile Send private message
CaptainFlint



Joined: 14 Dec 2004
Posts: 6151
Location: Москва

Post (Separately) Posted: Sun Nov 11, 2007 17:47    Post subject: Reply with quote

В качестве альтернативы можно использовать поиск в несколько шагов. Сначала ищешь все файлы, где есть слово "Иванов", потом выводишь их список в панель, выделяешь все, и натравливаешь на них поиск по слову "Петров", оставив, разумеется, включённой галочку "Только в выделенных".
_________________
Почему же, ё-моё, ты нигде не пишешь "ё"?
Back to top
View user's profile Send private message
aLexx



Joined: 14 Mar 2005
Posts: 442
Location: Новокузнецк

Post (Separately) Posted: Sun Nov 11, 2007 17:57    Post subject: Reply with quote

Не, по условию "находятся в пределах 100 знаков друг от друга." не проходит. Тут надо скриптик писать. Причём, несложный.
Шаг 1. Находим один из стрингов. Любой. Если есть, ищем второй.
Шаг 2. Если второй стринг находится, проверяем, на каком расстоянии они друг от друга. Тут можно также учесть длину самих стрингов.
Шаг 3. Если условие расстояния соблюдено, вывод информации.
Все параметры можно задать в комм. строке.
Имхо, для наших Гуру это плёвое дело!
Back to top
View user's profile Send private message
CaptainFlint



Joined: 14 Dec 2004
Posts: 6151
Location: Москва

Post (Separately) Posted: Sun Nov 11, 2007 18:36    Post subject: Reply with quote

aLexx wrote:
Не, по условию "находятся в пределах 100 знаков друг от друга." не проходит.

По этому условию - да, я имел в виду самый первый вопрос, который не оформлен как вопрос:
plvtor wrote:
Как искать по тексту, если надо найти файлы с двумя, тремя, и т.д. искомыми словами

В некоторых случаях для "100 знаков" могут помочь регулярные выражения. Например,
Иванов.{0,100}Петров
Но, увы, это сработает, только если искомые слова в одной строке. Многострочных регулярных выражений в Тотале нет.
_________________
Почему же, ё-моё, ты нигде не пишешь "ё"?
Back to top
View user's profile Send private message
aLexx



Joined: 14 Mar 2005
Posts: 442
Location: Новокузнецк

Post (Separately) Posted: Sun Nov 11, 2007 18:44    Post subject: Reply with quote

А кстати, для повышения уровня знаний.

Иванов.{0,100}Петров
Это выражение считает расстояние от начала "Иванов" до начала "Петров"?
Или от конца "Иванов" до начала "Петров"?
Иногда это бывает важным...
Back to top
View user's profile Send private message
CaptainFlint



Joined: 14 Dec 2004
Posts: 6151
Location: Москва

Post (Separately) Posted: Sun Nov 11, 2007 18:55    Post subject: Reply with quote

aLexx wrote:
Иванов.{0,100}Петров

Это выражение считает расстояние от начала "Иванов" до начала "Петров"?

Для повышения уровня знаний рекомендуется читать справку. Smile
Выражение .{0,100} означает "произвольные символы количеством от 0 до 100". Соответственно, выражение Иванов.{0,100}Петров означает: строка "Иванов", потом произвольная последовательность символов, не более 100 штук, потом строка "Петров".
_________________
Почему же, ё-моё, ты нигде не пишешь "ё"?
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Total Commander Forum Index -> Общие вопросы All times are GMT + 4 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group