SelectFilter

Название SelectFilter
Имя файла (*.txt) SelectFilter.txt
Описание Выделяет файлы/директории согласно заданному фильтру
Автор Вахмурка
Параметры ("имя_фильтра", "1|2")
Вызываемые плагины ini, vec, win
Иконка зависит от фильтра
Версия 1.0
Дата обновления 19.08.2006
args Key, Comm
local hwnd = win.handle("c=TTOTAL_CMD")
local i, Temp, Flags, Pos
local INIfile = "путь\wincmd.ini"
local AllKeys = ini.enum_keys(INIfile, "Searches")
local Total = line(AllKeys, 0)
local Counter = 0
local SF = "_SearchFor"

for(i = 1; i <= Total; i++)
	Temp = line(AllKeys, i)
	if(index(Temp, SF))
		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, "_SearchFlags")) do
		Flags = ini.get(INIfile, "Searches", Temp)
		Pos = length(Flags) - 3

		if(select(Flags, Pos, Pos)) do
			Counter--
			continue
		endif
	endif

	if(index(Temp, SF)) do
		v[Counter] = Temp
		Counter++
	endif
endfor

vec.sort(v)
Counter = vec.binsearch(v, Key ++ SF)
vec.destroy(v)

Comm = 520 + Comm
win.postmessage(hwnd, 0x400+51, Comm, 0)
wait.for(1500, win.visible("c=TCOMBOINPUT"))
*keys {tab}{right}

for(i = 1; i <= Counter; i++)
	*keys {down}
endfor

*keys {enter}

Комментарии:

Нажмите "серый плюс". Там находится список сохраненных фильтров, позволяющих выделять файлы и директории согласно заданным критериям. Если этот список достаточно велик, поиск нужного фильтра может оказаться утомительным делом.

Скрипт позволяет производить выделение одной кнопкой или горячей клавишей. Первый параметр - имя фильтра, второй - "1" для выделения и "2" для снятия выделения.

Мне показалось очень удобным следующее: создать два фильтра "Только файлы, не директории" и "Только директории, не файлы", присвоить их вызов скрипту и назначить им горячие клавиши Ctrl+Alt+F и Ctrl+Alt+D.


На главную Все о Total Commander PowerPro Все скрипты