Выделение файлов в панели результатов поиска по их именам

Обсуждение вопросов автоматизации Total Commander с помощью сторонних программ и скриптовых технологий.

Модераторы: d-view, Моторокер, Avada, CaptainFlint, Nik

BeardFury78
Сообщения: 213
Зарегистрирован: Чт авг 25, 2016 05:24

Выделение файлов в панели результатов поиска по их именам

Сообщение BeardFury78 »

Хотелось бы кнопку или скрипт, чтобы можно было в панели результатов поиска выделять файлы по их именам из буфера обмена. Встроенная функция выделения из буфере там работает только с полными путями, а способ со звездочкой перед именами файлов мне не подошел, работает это как-то странно, некоторые файлы выделяются, а некоторые вовсе нет, хотя должны и еще захватываются лишные файлы, имеющие в конце названия ту же часть, которая есть в скопированных именах. Есть ли возможность сделать кнопку или скрипт, чтобы нужные файлы выделялись как надо? Спасибо.
sa
Сообщения: 2758
Зарегистрирован: Ср апр 29, 2009 18:56

Сообщение sa »

BeardFury78
Вариант выделить ручками после Ctrl+S и Ctrl+V, наверное, не подойдёт?
Аватара пользователя
MVV
Сообщения: 4815
Зарегистрирован: Чт окт 15, 2009 10:58
Откуда: Ростов-Дон

Сообщение MVV »

sa,
Ты ведь не можешь в окне быстрого поиска ввести несколько имен или путей...
sa
Сообщения: 2758
Зарегистрирован: Ср апр 29, 2009 18:56

Сообщение sa »

MVV
Понятно, я то подумал, что в буфере только одно имя...
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

BeardFury78

Код: Выделить всё

'===================== VBS ======================
' Выделение элементов с именами из буфера обмена

' Условия: 1) требуется компонент TCScript.dll;
'          2) имена папок должны иметь \ на конце

' Параметры: "%P" <выдел. всё/файлы/папки: 1/2/3>
'================================================
Set R = New RegExp : R.Global = True : P = WSH.Arguments(0)
With CreateObject("TCScript.Helper")
  .Pause = 0 : .Wait = True : Clip = .GetTextFromClip
  R.Pattern = "^[\r\n]+|[\r\n]+$|\r?\n(?=(\r?\n)+)"
  RClip = Replace(R.Replace(Clip, ""), vbNewline, "|")
  R.Pattern = "([.;$+^\\\(\)\{\[])" : R.MultiLine = True
  R.Pattern = "(^|\r\n)([^\r\n]+\\(" & R.Replace(RClip, "\$1") & "))$"
  .NoArrayReturn = True : .LockTC True : .SendCommand 524, True
  .SendCommand 3300 + WSH.Arguments(1), True
  Sel = .GetSrcSelectedFiles(1) : .Sleep 20
  For Each Path in R.Execute(Sel)
    List = List & Path.Value
  Next : .SendCommand 524, True
  If P <> "" Then List = Replace(List, P, "") : .Sleep 20
  .SetTextToClip List : .SendCommand 2033, True
  .LockTC False : .SetTextToClip Clip
End With
Последний раз редактировалось Flasher Вс май 28, 2017 01:52, всего редактировалось 6 раз.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
BeardFury78
Сообщения: 213
Зарегистрирован: Чт авг 25, 2016 05:24

Сообщение BeardFury78 »

sa
В панели результатов поиска приходится работать с тысячами и десятка тысячами файлов. Не подходит.

Добавлено спустя 16 минут:

Flasher
Спасибо, работает отлично!

Добавлено спустя 1 час 29 минут:

Заметил, если в текстовом редакторе есть пустые строки и их вместе со строками имен скопировать, то вместе с нужными файлами выбираются все папки сверху на панеле результатов поиска. Хорошо, что заметил на стадии подтверждения перемещения, а иначе потерял бы всю структуру папок.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

BeardFury78
Не удаётся воспроизвести. Режим, второй параметр и имена папок/файлов в студию.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
BeardFury78
Сообщения: 213
Зарегистрирован: Чт авг 25, 2016 05:24

Сообщение BeardFury78 »

Flasher
Панель результатов поиска, параметр "1", имена файлов к примеру такие:
img 3846.jpg
img 3847.jpg
img 3848.jpg
img 3850.jpg
img 3852.jpg
img 3853.jpg
img 3855.jpg
img 3857.jpg
img 3861.jpg
img 3863.jpg
img 3884.jpg
img 3892.jpg
img 3896.jpg
img 3898.jpg
img 3899.jpg
img 3901.jpg
img 3902.jpg
img 3903.jpg
Да и кстати редактор Notepad++, откуда копирую и пустые строки находятся посреди строк имен, тогда в этом случае все папки выделяются. Если пустые строки находятся в конце или в начале, то бага не возникает.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

BeardFury78
Обновил.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
BeardFury78
Сообщения: 213
Зарегистрирован: Чт авг 25, 2016 05:24

Сообщение BeardFury78 »

Flasher
Бага теперь нет, спасибо!
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

BeardFury78
Пожалуйста. Ещё одну мелочь убрал. Что касается
BeardFury78 писал(а):на стадии подтверждения перемещения
- опять промежуточная была задача?
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
BeardFury78
Сообщения: 213
Зарегистрирован: Чт авг 25, 2016 05:24

Сообщение BeardFury78 »

Flasher
Нет, просто приходится много работать в панели результатов поиска, где там по некоторым файлам произвожу разные операции: групповое переименование, перемещение, плюс еще может какие действия. Выделение по именам в панели результатов поиска - это как раз то, что и мне нужно, автоматизировать больше ничего не надо.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

BeardFury78
ОК. Ещё немного оптимизировал.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
BeardFury78
Сообщения: 213
Зарегистрирован: Чт авг 25, 2016 05:24

Сообщение BeardFury78 »

Flasher
С новым вариантом скрипта возникла ошибка "Строка: 16 Символ: 3 Ошибка: Объект не поддерживает это свойство или метод:'NoArrayReturn'" и ничего не выделяется. Предыдущие версии работают нормально. Параметры те же самые.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

BeardFury78
Так версия модуля должна быть текущей, разумеется.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Ответить