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 1, 2, 3  Next
 
Post new topic   Reply to topic    Total Commander Forum Index -> Общие вопросы printer-friendly view
View previous topic :: View next topic  
Author Message
visual



Joined: 14 Jun 2005
Posts: 42

Post (Separately) Posted: Thu Jan 26, 2006 17:01    Post subject: Можно ли сделать следующее... Reply with quote

С начала хочу выразить мое глубокое уважение к создателю этой великолепной программы, а так же тем людям, кто занимается поддержкой и пишет плагины к ней.
У меня вопрос такой: имеется куча папок в 2-х окнах Total Commander 6.53, можно ли сравнить (путем выделения) папки не только по названию, но и по количеству папок внутри сравниваемых папок. Немного масло масленое получилось но вроде понято, да?
Back to top
View user's profile Send private message
Batya



Joined: 15 Dec 2004
Posts: 2224
Location: Москва, Россия

Post (Separately) Posted: Thu Jan 26, 2006 17:18    Post subject: Reply with quote

Видимо, средствами TC нельзя такое сделать.
Могу написать для тебя скрипт.
Посему, вопросы:
1. Сравнмвать только одну папку на одной панели с одной папкой на другой панели?
2. Имена этих папок совпадают?
3. Необходимо сравнивать только количество непосредственно подпапок без подсчета глубже вложенных папок?
4. Какой результат выводить? (Например, "Количество подпапок не совпадает!" или "В исходной папке - X подпапок, в сравниваемой папке - Y подпапок.")
5. Количество файлов сравнивать не надо?
6. Что-нибудь делать после сравнения кроме вывода результата?
Back to top
View user's profile Send private message
visual



Joined: 14 Jun 2005
Posts: 42

Post (Separately) Posted: Thu Jan 26, 2006 17:49    Post subject: Reply with quote

Ок сейчас отвечу.
1. Сравнивать все папки левой панели со всеми папками на правой по названию.
2. Имена папок обычно совпадают на 80-90 процентов по этому желательно выделить те папки которые не совпали.
3. В каждой сравниваемой папке могут находиться различное количество подпапок, но в этих подпапках идут только файлы, соответственно нужно сравнивать только количество первых вложенных папок.
4. Результат.. (если это диалоговое окно, то не надо)
5. количество файлов сравнивать не надо.
6. меня в принципе устроит если просто выделятся цветом те папки которые не совпадают и по названию и по количеству подпапок.

То есть в результате цветом выделятся только разноименные папки и папки с одинаковыми названиями, но с различным количеством вложенных в них папок.
Back to top
View user's profile Send private message
visual



Joined: 14 Jun 2005
Posts: 42

Post (Separately) Posted: Thu Jan 26, 2006 17:56    Post subject: Reply with quote

У меня в тотале есть функция "Сравнить с учетом подкаталогов" тогда сравнивается по названию и выделяется цветом, хотелось бы еще чтобы выделялись и папки с одинаковым названием, но различным количеством (в не зависимости от имени) подпапок.
Back to top
View user's profile Send private message
Batya



Joined: 15 Dec 2004
Posts: 2224
Location: Москва, Россия

Post (Separately) Posted: Thu Jan 26, 2006 18:03    Post subject: Reply with quote

ОК.
В принципе, думаю, не сложно. Над чем придется помучиться - выделение папок (цветом).
Только прямо сейчас не могу. Завтра утром попробую.
Back to top
View user's profile Send private message
visual



Joined: 14 Jun 2005
Posts: 42

Post (Separately) Posted: Thu Jan 26, 2006 18:09    Post subject: Reply with quote

Ок ты глянь там же есть готовый скрипт выделения папок.
Если не получиться можно оставить в окнах только найденные сравнения.
Заранее благодарен.
Back to top
View user's profile Send private message
Batya



Joined: 15 Dec 2004
Posts: 2224
Location: Москва, Россия

Post (Separately) Posted: Thu Jan 26, 2006 18:35    Post subject: Reply with quote

visual wrote:
Ок ты глянь там же есть готовый скрипт выделения папок.

Ты это о чем? Где есть?
Back to top
View user's profile Send private message
visual



Joined: 14 Jun 2005
Posts: 42

Post (Separately) Posted: Fri Jan 27, 2006 10:04    Post subject: Reply with quote

Batya wrote:
visual wrote:
Ок ты глянь там же есть готовый скрипт выделения папок.

Ты это о чем? Где есть?

В тотале есть такая функция. Значит и скрипт наверно есть? Confused
Back to top
View user's profile Send private message
visual



Joined: 14 Jun 2005
Posts: 42

Post (Separately) Posted: Fri Jan 27, 2006 10:22    Post subject: Reply with quote

Batya
Спасай на тебя вся надежда! Я думаю задачу можно упростить и выделять только те папки в которых не совпадает количество подпапок.
Back to top
View user's profile Send private message
Batya



Joined: 15 Dec 2004
Posts: 2224
Location: Москва, Россия

Post (Separately) Posted: Fri Jan 27, 2006 12:37    Post subject: Reply with quote

visual wrote:
В тотале есть такая функция. Значит и скрипт наверно есть? Confused

Smile Неа. Команды TC к скриптам не имеют никакого отношения.

Итак, готово.
Перед запуском скрипта убедись, что у тебя установлена настройка "Выделять по Num+ файлы и каталоги".
Code:
'========================================================================
' Сравнивание папок в панелях TC на имена и количество вложенных подпапок

' В параметрах вызова из TC должно быть прописано (2 пар. через пробел):
' %P %T
'========================================================================

Dim FSO, TCS, FoldAct, FoldPas, Fold
Set FSO = CreateObject("Scripting.FileSystemObject")
Set TCS = CreateObject("TCScript.Helper")
Set FoldAct = FSO.GetFolder(WScript.Arguments(0))
Set FoldPas = FSO.GetFolder(WScript.Arguments(1))

Dim SelectList1, SelectList2
SelectList1 = ""
SelectList2 = ""
For Each Fold in FoldAct.SubFolders
  If Not FSO.FolderExists(FoldPas.Path & "\" & Fold.Name) Then
    SelectList1 = SelectList1 & ";" & Fold.Name
  Elseif Fold.SubFolders.Count <> _
         FSO.GetFolder(FoldPas.Path & "\" & Fold.Name).SubFolders.Count Then
    SelectList1 = SelectList1 & ";" & Fold.Name
    SelectList2 = SelectList2 & ";" & Fold.Name
  End If
Next
For Each Fold in FoldPas.SubFolders
  If Not FSO.FolderExists(FoldAct.Path & "\" & Fold.Name) Then
    SelectList2 = SelectList2 & ";" & Fold.Name
  End If
Next
TCS.LockTC True
TCS.Pause = 10
If Len(SelectList1) > 0 Then
  SelectList1 = Mid(SelectList1, 2)
  TCS.SendCommand 521 'cm_SpreadSelection
  TCS.SendKeystroke SelectList1 & "{ENTER}"
End If
If Len(SelectList2) > 0 Then
  SelectList2 = Mid(SelectList2, 2)
  TCS.SendKeystroke "{TAB}"
  TCS.SendCommand 521 'cm_SpreadSelection
  TCS.SendKeystroke SelectList2 & "{ENTER}"
  TCS.SendKeystroke "{TAB}"
End If
TCS.LockTC False

Set FSO = Nothing
Set TCS = Nothing
Set Fold = Nothing
Set FoldAct = Nothing
Set FoldPas = Nothing
Wscript.Quit()

Сохрани код в файл с расширением vbs, повесь этот файл на кнопку (можно просто перетащить на панель). В параметрах кнопки надо указать 2 параметра (через пробел):
%P %T

Для работы скрипта ты должен у себя на компе зарегистрировать Script Helper.
Back to top
View user's profile Send private message
visual



Joined: 14 Jun 2005
Posts: 42

Post (Separately) Posted: Fri Jan 27, 2006 12:47    Post subject: Reply with quote

Спасибо большое дружище!
а что такое Script Helper. у меня пара скриптов работает без него.
Или именно под этот скрипт нужно регистрировать?
Back to top
View user's profile Send private message
Batya



Joined: 15 Dec 2004
Posts: 2224
Location: Москва, Россия

Post (Separately) Posted: Fri Jan 27, 2006 12:54    Post subject: Reply with quote

В моем скрипте объявляется объект TCScript.Helper. Он должен быть зарегистрирован в системе. Что это такое - см. ссылку в предыдущем посте.
Back to top
View user's profile Send private message
visual



Joined: 14 Jun 2005
Posts: 42

Post (Separately) Posted: Fri Jan 27, 2006 13:08    Post subject: Reply with quote

Не пойму как работает.
жму на кнопку - вылетает окно "добавить выделение" и в след заним "файл не найден"
Back to top
View user's profile Send private message
Batya



Joined: 15 Dec 2004
Posts: 2224
Location: Москва, Россия

Post (Separately) Posted: Fri Jan 27, 2006 13:27    Post subject: Reply with quote

Ты установил настройку "Выделять по Num+ файлы и каталоги"?
Если - да, то попробуй время задержки сделать больше, например:
Code:
TCS.Pause = 100
Back to top
View user's profile Send private message
visual



Joined: 14 Jun 2005
Posts: 42

Post (Separately) Posted: Fri Jan 27, 2006 15:03    Post subject: Reply with quote

Поставил галку, точнее она стояла уже - Выделять(по Num+и др.) Файлы и каталоги
Время задердки сделал больше не помогает!
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Total Commander Forum Index -> Общие вопросы All times are GMT + 4 Hours
Goto page 1, 2, 3  Next
Page 1 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