Поиск одной кнопкой

Название FindTemplate
Имя файла FindTemplate.txt
Описание Производит поиск по сохраненному шаблону. Извещает пользователя об окончании поиска
Автор Вахмурка
Параметры "Шаблон", "Способ извещения", "начать сразу"
Вызываемые плагины vec, ini, win, childwin, miscplugin, osd
Версия 2.1
Дата обновления 09.06.2008
args Key, Sig, Now
local i, Temp
local INIfile = "путь\wincmd.ini"
local Mess = "Search complete"
local Class = "c=TFindFile"
local AllKeys = ini.enum_keys(INIfile, "Searches")
local Total = line(AllKeys, 0)
local Counter = 0

for(i = 1; i <= Total; i++)
	Temp = line(AllKeys, i)
	if(index(Temp, "_SearchFor") != 0)
		Counter++
endfor

v = vec.create(Counter)
if(v == 0) do
	messagebox("ok error", "Vector not created", "VEC plugin error")
	quit
endif

Counter = 0

for(i = 1; i <= Total; i++)
	Temp = line(AllKeys, i)
	if(index(Temp, "_SearchFor") != 0) do
		v[Counter] = Temp
		Counter++
	endif
endfor

vec.sort(v)
Counter = vec.binsearch(v, Key ++ "_SearchFor")
vec.destroy(v)
vec.unload

*keys %{f7}+{tab}{right 3}{tab}{down}
for(i = 1; i <= Counter; i++)
	*keys {down}
endfor

*keys {tab}{enter}

if(not Now)
	quit

*keys {enter}

wait.for(activewindow(Class))
wait.for(win.handle(Class))
local Hand = win.handle(Class)
wait.for(childwin.handle(Hand, 71))
wait.for(win.gettext(childwin.handle(Hand, 71)) == "&Start search")
if(index(Sig, "b"))
	miscplugin.balloontip(1, "INFORMATION", Mess, "title=FindTemplate Script")
if(index(Sig, "o"))
	osd.show(Mess, "3000", "30", "Arial", "-1", "255 000 000")
if(index(Sig, "m"))
	messagebox("ok information", Mess, "FindTemplate Script")

Если какой-либо поиск требуется проводить часто, разумно сохранить его и вызывать следующим образом

Скрипт позволяет сопоставить каждому шаблону кнопку и/или горячую клавишу и запукать нужный поиск одной кнопкой или горячей клавишей, как и команда LOADSEARCH, введенная в Total Commander 7.

Первый параметр скрипта - имя шаблона, например: runfile.FindTemplate("HTMLtext").

Иногда поиск длится минуты и даже часы, пока пользователь занят другой работой. Для извещения об окончании поиска служит второй параметр скрипта. Он может состоять из букв "m", "o" и "b" (только нижний регистр, порядок любой). Буквы задают выдачу сообщения с помощью: диалогового окна, надписи на экране или "облачка" (balloon tip) в панели задач. Например, FindTemplate("Duplicates", "om", "1") запустит поиск дубликатов (конечно, если такой шаблон есть) и по окончании поиска известит пользователя крупной надписью посередине экрана и "облачком".

Третий параметр, если присутствует и равен "1", заставляет начать поиск немедленно. Присвоить третьему параметру значение "0" или опустить его разумно в случае, если перед началом поиска требуется ввести дополнительные данные, скажем, текст.

Поиск в архивах

Скрипт вызывает обычное окно поиска, но с птицей "Search archives". Остается ввести маску.

*keys %{f7}{tab 4}{space}{tab 3}


Поиск файла с именем из буфера

Ищет в текущей директории и в дочерних файл, имя которого занесено в буфер обмена.

Не путать с последствиями действия команд cm_CutToClipboard и cm_CopyToClipboard! Эти команды копируют не имя файла, а его расположение! Напротив, команда cm_CopyNamesToClip как раз-таки копирует имя файла под курсором. Если вы хотите найти в директории файл с тем же именем, что и файл в другой директории, выдайте команду cm_CopyNamesToClip или подобную (их там 5 штук), перейдите на нужную вкладку и вызовите скрипт. С тем же успехом имя файла для поиска может быть скопировано из текстового редактора и т. п.

*keys %{f7}+{ins}{enter}

Поиск текста из буфера

Ищет в текущей директории и в дочерних файл(ы), содержащие текст в буфере обмена.

*keys %{f7}{del}{tab 5}{space}+{ins}{enter}

По весу

*keys %{f7}{del}+{tab}{right}{tab 3}{space}{tab 2}{up 2}+{tab}

Вес (сиречь размер) файла указыватся точно, то есть в байтах.


На главную Все о Total Commander PowerPro PowerPro & Total Commander