View previous topic :: View next topic |
Author |
Message |
sbm
Joined: 02 Jul 2020 Posts: 3
|
(Separately) Posted: Thu Jul 02, 2020 18:04 Post subject: Подсветка каталога по названию выделенного файла |
|
|
Добрый день.
Приходится распределять большое количество файлов по папкам, многие папки повторяются.
Можно ли как-то автоматизировать этот процесс, написав плагин, который, к примеру, при выделении файла в левой панели, в правой отображает папку, похожая по названию на выделенный файл?
И останется только перетащить файл из левой панели в выделенный каталог на правой панели.
https://yadi.sk/i/-VSF5MP0Yq7p9Q
Заранее спасибо |
|
Back to top |
|
|
Avada
Joined: 01 Aug 2008 Posts: 10280 Location: Россия, Саратов
|
(Separately) Posted: Thu Jul 02, 2020 19:14 Post subject: |
|
|
sbm
В TC существуют плагины не для всего, что кому-то придёт в голову, а с вполне конкретной функциональностью (см. справку), которая произвольно не расширяется. А вопросы, подобные вашему, проясняются (если найдутся желающие) в подфоруме по автоматизации, куда эта тема для начала и переносится. _________________ Даже самая богатая фантазия
Не представит себе наши безобразия. |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Fri Jul 03, 2020 00:50 Post subject: |
|
|
sbm
Тут либо работа по конкретным шаблонам нужна либо что-то совсем умное и сложное в работе со словарями, т. к. вариативность расстановки совпадающих частей текста запредельная.
Запрос совсем неопределённый. В заголовке написано про подсветку, в посте про выделение и отображение, хотя целью вообще является перемещение. Если уж писать какое-то средство автоматизации, то с выполнением конечной цели с максимальным сужением фильтрационных рамок. _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
Avada
Joined: 01 Aug 2008 Posts: 10280 Location: Россия, Саратов
|
(Separately) Posted: Fri Jul 03, 2020 08:44 Post subject: |
|
|
sbm
Некоторые добавления к предыдущему ответу.
1. "Похожая по названию на выделенный файл" — это (даже безотносительно к сомнительной технической стороне реализации) очень мутный критерий. К примеру, у вас есть некий файл. В другой панели имеются, предположим, три папки, каждая из которых от исходного имени отличается одним символом. Какую прикажете выделять? Не задумывались над таким вопросом?
2. Ну выделили вам как-то папку, допустим. Но не факт, что она у вас окажется в поле зрения. Дальше будете искать её (вприглядку или сортировкой по выделению, если умеете) в списке?
3. Перетаскивать файл на выделенную в результате этих манипуляций папку — это, ИМХО, неуважение к собственному времени и постоянный риск ошибиться. Вы не в Проводнике, здесь предпочитаются другие операционные схемы (где есть и перетаскивание, да, но отнюдь не как самый лучший вариант). Куда логичнее было бы открыть папку и выполнить в неё нормальное копирование в стиле TC.
4. И вообще ситуация, когда вы всё намерены делать руками, а упростить пытаетесь один промежуточный этап (не факт, что вообще в таком виде нужный), выглядит достаточно странно. Здесь надо либо, как верно выше замечено, продумывать автоматизацию всей цепочки (при нормальном её пояснении и технической возможности), либо оставить эту идею в покое.
5. И, наконец, не рекомендую использовать "подсветку" (означающую в TC совсем другое) как синоним "выделения". Вас просто не поймут. _________________ Даже самая богатая фантазия
Не представит себе наши безобразия.
Last edited by Avada on Mon Jun 26, 2023 23:37; edited 1 time in total |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Fri Jul 03, 2020 12:27 Post subject: |
|
|
Avada wrote: | Но не факт, что она у вас окажется в поле зрения. | Если открывать и выходить в родитель, то окажется. Либо с добавлением cm_GoToFirstEntry,cm_GotoNextSelected. Короче, это (безотносительно справедливости п. 3) решается. Только на нормальной версии, а не той древней, что на скриншоте. _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
Avada
Joined: 01 Aug 2008 Posts: 10280 Location: Россия, Саратов
|
(Separately) Posted: Fri Jul 03, 2020 14:33 Post subject: |
|
|
Flasher
Если открывать, то естественно. Но я-то то оцениваю логику исходного запроса.
Скриншот, кстати, сделал активным, а версия там в самом деле совершенно антикварная. Такое сейчас использовать просто неприлично. _________________ Даже самая богатая фантазия
Не представит себе наши безобразия. |
|
Back to top |
|
|
sbm
Joined: 02 Jul 2020 Posts: 3
|
(Separately) Posted: Mon Jul 06, 2020 16:18 Post subject: |
|
|
Avada
Полностью автоматизировать этот процесс невозможно в ввиду большой вариантности и неоднозначности условий, поэтому я и хотел облегчить именно ручную работу по разносу файлов.
Можно конкретизировать так: выделил файл в левой панели, нажал некоторую кнопку или сочетание клавиш и в правой панели отобразились только папки с похожими названиями.
"Похожими" здесь берется некоторая маска из названия файла - первые 5 букв и по им делается фильтр на правую панель |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Mon Jul 06, 2020 17:01 Post subject: |
|
|
sbm
Число вариантов можно сузить путём подстановки маски из комбинации слов (от большего числа к меньшему до нахождения), разделенных по небуквенному символу или границе с верхним регистром. _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
sbm
Joined: 02 Jul 2020 Posts: 3
|
(Separately) Posted: Wed Jul 08, 2020 13:49 Post subject: |
|
|
Flasher wrote: | sbm
Число вариантов можно сузить путём подстановки маски из комбинации слов (от большего числа к меньшему до нахождения), разделенных по небуквенному символу или границе с верхним регистром. |
и как это можно сделать? |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Thu Jul 09, 2020 01:40 Post subject: |
|
|
sbm
Например, с Хелпером (установка в ReadMe; PCRE в WSH нет, т. ч. за регулярку пардоньте): Code: | '============================ VBS ============================
' Показать в другой панели папки с наибольшим числом буквенных
' комбинаций (в строгом порядке) у имён выбранных объектов
' Условие: требуется компонент TCScript.dll
' /f — ключ смены показа папок на фильтрацию файлов
'======================================== Автор: Flasher © ===
Option Explicit: Dim TP, i, Items, REx, Clip, F, N, L, M, c, Arr, S
With CreateObject("TCScript.Helper")
.Pause = 0 : TP = .GetInfo("TP") : i = .GetInfo(1000)
If Mid(TP,2,1) <> ":" Or ( .GetInfo(1004 + i) = 0 And _
.GetInfo(1006 + i) = 0 And .GetInfo(1008 + i) = 1 ) Then WSH.Quit
Set Items = CreateObject("Shell.Application").NameSpace(TP).Items
Set REx = New RegExp : REx.Global = 1: REx.Pattern = "[" &P& "]+"
REx.IgnoreCase = 1 : .Wait = True : Clip = .GetTextFromClip : .LockTC True
Dim Test, K : Test = WSH.Arguments.Named.Exists("f") : If Test Then K = 32
For Each F in .GetSrcSelectedFiles
If Test Or Right(F, 1) = "\" Then
N = REx.Replace(Left(F, Len(F) - 1), "*") : M = ""
For i = 1 To Len(N)
L = Mid(N, i, 1) : If L <> "*" And UCase(L) = L Then L = "*" & L
M = M & L
Next: N = M
If N = "*" Then
N = Left(F, Len(F) - 1)
Else
If Left(N, 1) = "*" Then N = Mid(N, 2)
If Right(N,1) = "*" Then N = Left(F, Len(F) - 1)
End If
Arr = Split(N, "*")
For c = Ubound(Arr) To 0 Step -1
Items.Filter 73888 + K, "*" & N & "*"
If Items.Count Then
If Test Then
For Each i in Items
i = Mid(i.Path, InStrRev(i.Path, "\") + 1)
If InStr(i, ";") > 0 Or InStr(i, " ") > 0 Then i = """" & i & """"
S = S & ";" & i
Next
Else
For Each i in Items
S = S & vbLf & i & "\"
Next
End If
Exit For
End If
If InStr(N, "*") Then N = Left(N, Len(N) - Len(Arr(c)))
Next
End If
Next
Set REx = Nothing : Set Items = Nothing
If Not IsEmpty(S) Then
If Test Then
If .INIRead(.TCPath & "\usercmd.ini", "em_cd", "cmd") <> "cd" Then
.INIWrite .TCPath & "\usercmd.ini", "em_cd", "cmd", "cd"
.INIWrite .TCPath & "\usercmd.ini", "em_cd", "param", "%Z%A"
End If
.SendCommand 4006, 1 : .UserCmd "em_cd " & S & "|*\" : .SendCommand 4006, 1
Else
.SetTextToClip Mid(S, 2)
For Each n in Array(4006,524,312,2033,2023,524,2049,4006)
.SendCommand n, 1
Next
End If: .LockTC False : .SetTextToClip Clip
End If
End With
Function P
P = Replace("\0000-\0040\005B-\0060\007B-\00A9\00AB-\00B4\00B6-\00B9"&_
"\00BB-\00BF\00D7\00F7\02C2-\02C5\02D2-\02DF\02E5-\02EB\02ED\02EF" &_
"-\036F\0375\0378-\0379\037E\0380-\0385\0387\038B\038D\03A2\03F6" &_
"\0482-\0489\0530\0557-\0558\055A-\0560\0588-\05CF\05EB-\05EF\05F3-" &_
"\061F\064B-\066D\0670\06D4\06D6-\06E4\06E7-\06ED\06F0-\06F9\06FD-" &_
"\06FE\0700-\070F\0711\0730-\074C\07A6-\07B0\07B2-\07C9\07EB-\07F3" &_
"\07F6-\07F9\07FB-\07FF\0816-\0819\081B-\0823\0825-\0827\0829-\083F" &_
"\0859-\089F\08B3-\0903\093A-\093C\093E-\094F\0951-\0957\0962-\0970" &_
"\0981-\0984\098D-\098E\0991-\0992\09A9\09B1\09B3-\09B5\09BA-\09BC" &_
"\09BE-\09CD\09CF-\09DB\09DE\09E2-\09EF\09F2-\0A04\0A0B-\0A0E\0A11" &_
"-\0A12\0A29\0A31\0A34\0A37\0A3A-\0A58\0A5D\0A5F-\0A71\0A75-\0A84" &_
"\0A8E\0A92\0AA9\0AB1\0AB4\0ABA-\0ABC\0ABE-\0ACF\0AD1-\0ADF\0AE2-" &_
"\0B04\0B0D-\0B0E\0B11-\0B12\0B29\0B31\0B34\0B3A-\0B3C\0B3E-\0B5B" &_
"\0B5E\0B62-\0B70\0B72-\0B82\0B84\0B8B-\0B8D\0B91\0B96-\0B98\0B9B" &_
"\0B9D\0BA0-\0BA2\0BA5-\0BA7\0BAB-\0BAD\0BBA-\0BCF\0BD1-\0C04\0C0D" &_
"\0C11\0C29\0C3A-\0C3C\0C3E-\0C57\0C5A-\0C5F\0C62-\0C84\0C8D\0C91" &_
"\0CA9\0CB4\0CBA-\0CBC\0CBE-\0CDD\0CDF\0CE2-\0CF0\0CF3-\0D04\0D0D" &_
"\0D11\0D3B-\0D3C\0D3E-\0D4D\0D4F-\0D5F\0D62-\0D79\0D80-\0D84\0D97" &_
"-\0D99\0DB2\0DBC\0DBE-\0DBF\0DC7-\0E00\0E31\0E34-\0E3F\0E47-\0E80" &_
"\0E83\0E85-\0E86\0E89\0E8B-\0E8C\0E8E-\0E93\0E98\0EA0\0EA4\0EA6" &_
"\0EA8-\0EA9\0EAC\0EB1\0EB4-\0EBC\0EBE-\0EBF\0EC5\0EC7-\0EDB\0EE0-" &_
"\0EFF\0F01-\0F3F\0F48\0F6D-\0F87\0F8D-\0FFF\102B-\103E\1040-\104F" &_
"\1056-\1059\105E-\1060\1062-\1064\1067-\106D\1071-\1074\1082-\108D" &_
"\108F-\109F\10C6\10C8-\10CC\10CE-\10CF\10FB\1249\124E-\124F\1257" &_
"\1259\125E-\125F\1289\128E-\128F\12B1\12B6-\12B7\12BF\12C1\12C6-" &_
"\12C7\12D7\1311\1316-\1317\135B-\137F\1390-\139F\13F5-\1400\166D-" &_
"\166E\1680\169B-\169F\16EB-\16F0\16F9-\16FF\170D\1712-\171F\1732-" &_
"\173F\1752-\175F\176D\1771-\177F\17B4-\17D6\17D8-\17DB\17DD-\181F" &_
"\1878-\187F\18A9\18AB-\18AF\18F6-\18FF\191F-\194F\196E-\196F\1975" &_
"-\197F\19AC-\19C0\19C8-\19FF\1A17-\1A1F\1A55-\1AA6\1AA8-\1B04\1B34" &_
"-\1B44\1B4C-\1B82\1BA1-\1BAD\1BB0-\1BB9\1BE6-\1BFF\1C24-\1C4C\1C50" &_
"-\1C59\1C7E-\1CE8\1CED\1CF2-\1CF4\1CF7-\1CFF\1DC0-\1DFF\1F16-\1F17" &_
"\1F1E-\1F1F\1F46-\1F47\1F4E-\1F4F\1F58\1F5A\1F5C\1F5E\1F7E-\1F7F" &_
"\1FB5\1FBD\1FBF-\1FC1\1FC5\1FCD-\1FCF\1FD4-\1FD5\1FDC-\1FDF\1FED-" &_
"\1FF1\1FF5\1FFD-\2070\2072-\207E\2080-\208F\209D-\2101\2103-\2106" &_
"\2108-\2109\2114\2116-\2118\211E-\2123\2125\2127\2129\212E\213A-" &_
"\213B\2140-\2144\214A-\214D\214F-\2182\2185-\2BFF\2C2F\2C5F\2CE5-" &_
"\2CEA\2CEF-\2CF1\2CF4-\2CFF\2D26\2D28-\2D2C\2D2E-\2D2F\2D68-\2D6E" &_
"\2D70-\2D7F\2D97-\2D9F\2DA7\2DAF\2DB7\2DBF\2DC7\2DCF\2DD7\2DDF-" &_
"\2E2E\2E30-\3004\3007-\3030\3036-\303A\303D-\3040\3097-\309C\30A0" &_
"\30FB\3100-\3104\312E-\3130\318F-\319F\31BB-\31EF\3200-\33FF\4DB6-" &_
"\4DFF\9FCD-\9FFF\A48D-\A4CF\A4FE-\A4FF\A60D-\A60F\A620-\A629\A62C-" &_
"\A63F\A66F-\A67E\A69E-\A69F\A6E6-\A716\A720-\A721\A789-\A78A\A78F" &_
"\A7AE-\A7AF\A7B2-\A7F6\A802\A806\A80B\A823-\A83F\A874-\A881\A8B4-" &_
"\A8F1\A8F8-\A8FA\A8FC-\A909\A926-\A92F\A947-\A95F\A97D-\A983\A9B3-" &_
"\A9CE\A9D0-\A9DF\A9E5\A9F0-\A9F9\A9FF\AA29-\AA3F\AA43\AA4C-\AA5F" &_
"\AA77-\AA79\AA7B-\AA7D\AAB0\AAB2-\AAB4\AAB7-\AAB8\AABE-\AABF\AAC1" &_
"\AAC3-\AADA\AADE-\AADF\AAEB-\AAF1\AAF5-\AB00\AB07-\AB08\AB0F-\AB10" &_
"\AB17-\AB1F\AB27\AB2F\AB5B\AB60-\AB63\AB66-\ABBF\ABE3-\ABFF\D7A4-" &_
"\D7AF\D7C7-\D7CA\D7FC-\D7FF\D804-\D807\D809-\D80B\D80E-\D819\D81B-" &_
"\D82B\D82D-\D82E\D830-\D834\D836-\D839\D83B-\D83F\D86F-\D87D\D87F-" &_
"\F8FF\FA6E-\FA6F\FADA-\FAFF\FB07-\FB12\FB18-\FB1C\FB1E\FB29\FB37" &_
"\FB3D\FB3F\FB42\FB45\FBB2-\FBD2\FD3E-\FD4F\FD90-\FD91\FDC8-\FDEF" &_
"\FDFC-\FE6F\FE75\FEFD-\FF20\FF3B-\FF40\FF5B-\FF65\FFBF-\FFC1\FFC8-" &_
"\FFC9\FFD0-\FFD1\FFD8-\FFD9\FFDD-\FFFF", "\", "\u")
End Function |
_________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Last edited by Flasher on Sun Jul 19, 2020 22:37; edited 3 times in total |
|
Back to top |
|
|
Avada
Joined: 01 Aug 2008 Posts: 10280 Location: Россия, Саратов
|
(Separately) Posted: Thu Jul 09, 2020 13:00 Post subject: |
|
|
sbm
К вопросу о верхнем регистре (а заодно и о точках): почитайте правила форума. У нас не чат. Оверквотинг тут тоже категорически не приветствуется (кнопка "цитата" — только для умеющих эти цитаты нормально оформлять, а не для повтора всего подряд). _________________ Даже самая богатая фантазия
Не представит себе наши безобразия. |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Sun Jul 19, 2020 22:39 Post subject: |
|
|
sbm
Также к вопросу о верхнем регистре. Про указанную границу забыл в скрипте. Исправлено. _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
|
|
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
|