View previous topic :: View next topic |
Author |
Message |
Ostap Fender
Joined: 19 Jun 2017 Posts: 35
|
(Separately) Posted: Tue Dec 12, 2017 16:58 Post subject: Показ файлов, не имеющих совпадений по базовому имени |
|
|
Прошу Уважаемых модераторов дать теме более подходящее название.
(Вывод на панель файлов, не имеющих одноименного аналога, без учета расширения) -у меня просто обрезалось.
Пояснение:
Имеется папка. В ней находятся 100 файлов .png, и 75 файлов .txt, имеющих одинаковые имена с файлами .png. (Форматы файлов приведены образно).
1.Нажатие на кнопку должно вывести на панель 25 файлов .png, не совпадающих по имени ни с одним файлом .txt.
2.Кнопка должна работать как с выделенными файлами, так и с содержимым выделенных папок, выводя на панель только файлы.
Условие 2 не принципиально для выполнения, если это существенно затруднит создание кнопки, (можно предварительно показать папки без подкаталогов), но по возможности - желательно.
Понимаю, что эта возможность реализована в ТС в поиске с помощью плагина [=tc.Имя]. Но решение данной задачи, подразумевает несколько действий. А я хотел бы выполнить всё это за одно нажатие.
Данная кнопка предусматривает узконаправленную область применения, и не найдет массового спроса, но был бы очень признателен за её создание.
С уважением. |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Tue Dec 12, 2017 19:40 Post subject: |
|
|
Code: | '=============================== VBS ===============================
' Показать в активной панели файлы без наличия однобазовых спутников
' Условие: требуется компонент TCScript.dll
'===================================================================
Set Dict = CreateObject("Scripting.Dictionary")
Set FSO = CreateObject("Scripting.FileSystemObject")
With CreateObject("TCScript.Helper")
.Pause = 0 : .Wait = True
Clip = .GetTextFromClip : P = .GetSrcPath
Set Items = CreateObject("Shell.Application").NameSpace(P).Items
For Each F in FSO.GetFolder(P).Files
BN = FSO.GetBaseName(F)
If Not Dict.Exists(BN) Then
Dict.Add BN, "" : Items.Filter 73920, BN & ".*"
If Items.Count = 1 Then List = List & vbLf & F
End If
Next : Set Dict = Nothing : Set FSO = Nothing
.SetTextToClip List : .LockTC True : .SendCommand 2033, True
.SendCommand 2023, True : .SendCommand 524, True
.LockTC False : .SetTextToClip Clip
End With | Это именно показ, не фильтрация. _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Last edited by Flasher on Wed Dec 13, 2017 01:42; edited 1 time in total |
|
Back to top |
|
|
Ostap Fender
Joined: 19 Jun 2017 Posts: 35
|
(Separately) Posted: Tue Dec 12, 2017 21:26 Post subject: |
|
|
Как всегда Flasher безукоризнен. А иначе и быть не могёт. Спасибо. Не знал я ТС как хотелось бы, а скоро вообще разучусь.
Доводим задачу до логического конца.
После вывода файлов на панель, кнопка должна создать в противоположной панели, в папке с названием @ которую она создаст сама, спутники для выведенных файлов формата .png и .tga (только для этих форматов, для других спутнике не нужны по сути),в формате .txt с таким содержимым: (в содержимом обязательно наличие пустой десятой строки)
Has Alpha Channel: yes
Number of Animations: 0
Horizontal Animation: no
Vertical Resizable: no
Horizontal Resizable: no
Fixed Top: 0
Fixed Bottom: 0
Fixed Left: 0
Fixed Right: 0 |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Wed Dec 13, 2017 02:38 Post subject: |
|
|
На доброе здоровье.
Все, что идёт далее, к сабжу не относится и реализуется иначе. Нет смысла что-то вообще показывать в панели, когда можно пройтись рекурсивно (т. е. по всей глубине, если это требуется по 2 условию) по папке, сопоставить имена и создать txt для подходящих.
Тема скорее новая (Создание отсутствующих описаний для файлов по маске) или вот эта. _________________ Автору сборки 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
|