Total Commander Forum Index Total Commander
Форум поддержки пользователей Total Commander
Сайты: Все о Total Commander | Totalcmd.net | Ghisler.com | RU.TCKB
 
 RulesRules   SearchSearch   FAQFAQ   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Выделение файлов по кол-ву символов в их имени
Goto page Previous  1, 2, 3
 
Post new topic   Reply to topic    Total Commander Forum Index -> Автоматизация Total Commander printer-friendly view
View previous topic :: View next topic  
Author Message
shveicar



Joined: 18 Apr 2011
Posts: 277
Location: Россия Москва

Post (Separately) Posted: Fri Jul 29, 2011 22:37    Post subject: Reply with quote

Andrey_A wrote:
Я пользуюсь таким скриптом, может поможет, если необходимо подправьте под себя
Спасибо, вот так скрипт, буду тестить.
Flasher wrote:
Прописать %N в параметрах.
Для новой кнопки не забыть очистить путь запуска
Все сделал работает, но опять интересная картина- просто папки и файлы выделяет, но когда отображено все содержимое, работать не хочет, а исходный скрипт скрипте при таком режиме выделяет только каталоги, а с файлами работать не хочет- может проблема в этом ?
Andrey_A wrote:
Всвязи с проблемой Helpera (при большом к-ве файлов) использована утилита NirCmd.exe
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Fri Jul 29, 2011 22:50    Post subject: Reply with quote

shveicar wrote:
но когда отображено все содержимое, работать не хочет
В каком смысле "отображено всё содержимое"? Содержимое чего?
shveicar wrote:
а исходный скрипт скрипте при таком режиме выделяет только каталоги
При каком "таком" режиме?
shveicar wrote:
может проблема в этом ?
Эта проблема старой версии. В последней этого нет.
Back to top
View user's profile Send private message
Andrey_A



Joined: 10 Apr 2009
Posts: 394
Location: Сочи

Post (Separately) Posted: Fri Jul 29, 2011 23:23    Post subject: Reply with quote

Quote:
работать не хочет

Я долго пытался, в своё время, справится с буфером с помощью TCS, но NirCmd.exe оказалась стабильней
http://www.nirsoft.net/utils/nircmd.html
скрипт немножко подправил
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Fri Jul 29, 2011 23:41    Post subject: Reply with quote

Andrey_A
Это, конечно, лучше обсуждать в другом месте, но, честно говоря, при использовании инструмента IE в одном месте скрипта лучше его использовать и в другом.
А касаемо утилит Tol!k уже не раз предлагал ConClip.
Откровенно, совершенно не понятно, зачем для такой простой задачи такой громоздкий код.

Убрал из этого скрипта использование буфера.
Back to top
View user's profile Send private message
shveicar



Joined: 18 Apr 2011
Posts: 277
Location: Россия Москва

Post (Separately) Posted: Sat Jul 30, 2011 01:04    Post subject: Reply with quote

Flasher wrote:
В каком смысле "отображено всё содержимое"? Содержимое чего?
Поясняю - захожу в текущей катаог, в нем множество вложенных каталогов с файлами, далее поиск искать все файлы с расширением(.wmv) Далее отобразить все найденое, и вот здесь для сортировки - пытаюсь применить скрипт. На данный момент в таком режиме, а также в режиме рекурсии- работает только плагин filex, А все остальные скрипты -(относящиеся к этой теме) работают в режиме простого выделения(то-есть, срабатывают только в режиме текущей панели, без вложенности) Возможно это связанно с портабельностью totala (честно говоря- первый раз такая ерунда) Helpera -обновил, но безрезультатно. На днях, проверю на виртуальной машине, со стандартным totalom. Скорее всего дело в этом. В любом случае спасибо Всем за помощь.
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Sat Jul 30, 2011 01:23    Post subject: Reply with quote

shveicar
В режиме DirBranch не работает, потому что в скрипте перебираются соответствующие элементы текущего каталога, а не элементы рекурсивной серии каталогов. К тому же в этом режиме используются относительные пути, а при загрузке выделения из буфера по команде cm_LoadSelectionFromClip тип путей должен соответствовать текущему режиму. Полные пути должны быть для стандартного режима, относительнгые для режима "без подкаталогов". Т.е. тут требуется выделять все файлы, выискивать отправной каталог во всех путях, потом формировать список путей относительно этого каталога и уже потом отправлять отфильтрованный список в буфер и загружать из него выделение. Это процесс довольно много ресурсов будет кушать и глюков, соответственно, может быть ещё больше, чем в приведённых вариантах.
Back to top
View user's profile Send private message
shveicar



Joined: 18 Apr 2011
Posts: 277
Location: Россия Москва

Post (Separately) Posted: Sat Jul 30, 2011 01:37    Post subject: Reply with quote

Спасибо Flasher - за разъяснение, но для режима (найти и отобразить все) и DirBranch - прекрасно работает плагин filex. так что придумывать что -то еще, нет смысла. Еще раз благодарю, за проделанную работу.
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Sat Jul 30, 2011 12:12    Post subject: Reply with quote

Безоконный вариант (удобно вызывать с клавиатуры):
Code:
' Выделение группы файлов/папок в соответствии с длиной имени файла/папки под курсором
' Необходима регистрация Script Helper ActiveX for TC
' Параметр: %N
'===============================================================
On Error Resume Next
N = WScript.Arguments(0)
With CreateObject("Scripting.FileSystemObject")
  Set CD = .GetFolder(CreateObject("WScript.Shell").CurrentDirectory)
  If .FileExists(N) Then
    For Each F in CD.Files
      If Len(F.Name) = Len(N) Then A = A  & vbnewline & F
    Next
  ElseIf .FolderExists(N) Then
    For Each F in CD.SubFolders
      If Len(F.Name) = Len(N) Then A = A  & vbnewline & F & "\"
    Next
  Else MsgBox "Установите курсор на файле или папке!", vbInformation
  End If
End With

With CreateObject("TCScript.Helper")
  T = .GetTextFromClip
  .SetTextToClip(A)
  .SendCommand 2033, True
  .SetTextToClip(T)
End With

Wscript.Quit
Back to top
View user's profile Send private message
shveicar



Joined: 18 Apr 2011
Posts: 277
Location: Россия Москва

Post (Separately) Posted: Sat Jul 30, 2011 14:13    Post subject: Reply with quote

Flasher wrote:
Безоконный вариант (удобно вызывать с клавиатуры):
Спасибо - вариант очень удобный!
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Sun Jul 31, 2011 18:55    Post subject: Reply with quote

В общем, посмотрел, вроде ничего сложного. Т.е. теперь работает и в режимах "без подкаталогов" и "файлы на панель" после поиска.
Code:
' Выделение группы файлов/папок в соответствии с длиной имени файла/папки под курсором
' Необходима регистрация Script Helper ActiveX for TC
' Параметры: %N "%P"
'===============================================================
On Error Resume Next
N = WScript.Arguments(0)
CD = WScript.Arguments(1)
If Err.Number > 0 Then
  MsgBox "Установите курсор на файле или папке!", vbInformation
  Err.Clear
  Wscript.Quit
End If

Set FSO = CreateObject("Scripting.FileSystemObject")
With CreateObject("TCScript.Helper")
  T = .GetTextFromClip
  .LockTC True
  .SendCommand 524
  If FSO.FileExists(N) Then .SendCommand 3302, True
  If FSO.FolderExists(N) Then .SendCommand 3303, True
  .SendCommand 2018, True
  .SendCommand 524
  For Each F in Split(.GetTextFromClip, vbnewline)
    If Len(FSO.GetFileName(F)) = Len(FSO.GetFileName(N)) Then
      If Len(CD) > 0 Then
        A = A  & vbnewline & Mid(F,Len(CD)+1)
      Else A = A  & vbnewline & F
      End If           
    End If
  Next
  .SetTextToClip(A)
  .LockTC False
  .SendCommand 2033, True
  .SetTextToClip(T)
End With

Set FSO = Nothing
Wscript.Quit
Предыдущий вариант не заменяю, т.к. тот срабатывает побыстрее.
Back to top
View user's profile Send private message
shveicar



Joined: 18 Apr 2011
Posts: 277
Location: Россия Москва

Post (Separately) Posted: Sun Jul 31, 2011 20:48    Post subject: Reply with quote

Вот -это Скрипт, Отличная работа, Спасибо.
Flasher wrote:
Предыдущий вариант не заменяю, т.к. тот срабатывает побыстрее
Так ведь дело, не в скорости, а в функциональности! Да и потом, Я особой разницы, в скорости не заметил. Такой скрипт, может занять почётное место в коллекции инструментов Total Commander!
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Total Commander Forum Index -> Автоматизация Total Commander All times are GMT + 4 Hours
Goto page Previous  1, 2, 3
Page 3 of 3

 
Jump to:  
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