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, 4  Next
 
Post new topic   Reply to topic    Total Commander Forum Index -> Автоматизация Total Commander printer-friendly view
View previous topic :: View next topic  
Author Message
Flasher



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

Post (Separately) Posted: Mon Aug 15, 2011 16:42    Post subject: Reply with quote

cojoc wrote:
3 нажимается кнопка, срабатывает скрипт меняется символы из буфера и переименовывается файл из пункта 1 на заголовок из 2 но с заменой символов
Ага, а в панели другая папка или другое выделение. Это не алгоритм.

Может так?:
2. Копируем заголовок шапки на трекере.
3. переходим из браузера в ТС, устанавливаем курсор на скаченным файле.
4. Жмём кнопку - подменяются симвлолы в буфере и базовое имя файла заменяется на обработанное имя.
Back to top
View user's profile Send private message
cojoc



Joined: 04 Sep 2009
Posts: 144

Post (Separately) Posted: Mon Aug 15, 2011 16:48    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: Mon Aug 15, 2011 20:07    Post subject: Reply with quote

Тут вопрос встал: что делать с символом ' " ' ? Ведь он один, а этих - ' « » ' - два.
Если бы после замыкающей кавычки шёл всегда пробел, то - не проблема, а то она может стоять и в конце, и между буквенными символами...
Back to top
View user's profile Send private message
cojoc



Joined: 04 Sep 2009
Posts: 144

Post (Separately) Posted: Mon Aug 15, 2011 20:32    Post subject: Reply with quote

Да я заметил Batya об этом упомянул, я знаю что это не совсем тривиальная задача, я знаю что для этого есть рекурсия и регвыражения, но в теории...
Можно в принципе заменить " на апострофы, а лучше даже на один символ ' или другой какой-нибудь, если кто возьмётся...


Last edited by cojoc on Mon Aug 15, 2011 21:11; edited 1 time in total
Back to top
View user's profile Send private message
Flasher



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

Post (Separately) Posted: Mon Aug 15, 2011 20:50    Post subject: Reply with quote

С регекспами лень ковыряться, там и правда не так просто. Пусть будут апострофы:
Code:
' Переименовать базовое имя файла под курсором на текст в буфере
' Параметр - %V или %P%N
'===============================================================
F = WScript.Arguments(0)
Set FSO = CreateObject("Scripting.FileSystemObject")
If Not FSO.FileExists(F) Then WScript.Quit
C = CreateObject("htmlfile").ParentWindow.ClipboardData.GetData("text")
R C, """", "'"
R C, "|", "-"
R C, ":", " -"
R C, ";", ","
R C, "\", "_"
R C, "/", "_"
FSO.MoveFile F, FSO.GetParentFolderName(F) & "\" & C & "." & FSO.GetExtensionName(F)
Set FSO = Nothing
WScript.Quit
Sub R(N, A, B)
  N = Replace(N, A, B)
End Sub


Last edited by Flasher on Mon Aug 15, 2011 21:13; edited 1 time in total
Back to top
View user's profile Send private message
cojoc



Joined: 04 Sep 2009
Posts: 144

Post (Separately) Posted: Mon Aug 15, 2011 21:06    Post subject: Reply with quote

Flasher
Оо спасибо сейчас проведу испытания!
Back to top
View user's profile Send private message
Flasher



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

Post (Separately) Posted: Mon Aug 15, 2011 21:13    Post subject: Reply with quote

Кой-чего поправил.
Back to top
View user's profile Send private message
cojoc



Joined: 04 Sep 2009
Posts: 144

Post (Separately) Posted: Mon Aug 15, 2011 21:23    Post subject: Reply with quote

Работает! (: Спасибо Flasher!
Если кому интересен результат
было
[rutracker.org].t3669718.torrent
Исходный код / Source Code (Дункан Джонс / Duncan Jones) [2011, США, Франция, Фантастика, боевик, триллер, HDRip] Dub
стало
Исходный код _ Source Code (Дункан Джонс _ Duncan Jones) [2011, США, Франция, Фантастика, боевик, триллер, HDRip] Dub.torrent
Back to top
View user's profile Send private message
Lev



Joined: 02 Mar 2005
Posts: 392

Post (Separately) Posted: Tue Aug 16, 2011 16:21    Post subject: Reply with quote

Чем мой вариант не устраивал? Отсутствием кнопки?
Back to top
View user's profile Send private message
Flasher



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

Post (Separately) Posted: Tue Aug 16, 2011 16:28    Post subject: Reply with quote

А ты прочти шапку скрипта. Твоя утилита ко всему прочему (у меня на 7) кракозябры выдаёт на кириллице.
Back to top
View user's profile Send private message
Lev



Joined: 02 Mar 2005
Posts: 392

Post (Separately) Posted: Tue Aug 16, 2011 16:30    Post subject: Reply with quote

Новая версия после правок с кракозябрами?
Back to top
View user's profile Send private message
Flasher



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

Post (Separately) Posted: Tue Aug 16, 2011 16:30    Post subject: Reply with quote

Только что скачивал.
Back to top
View user's profile Send private message
Lev



Joined: 02 Mar 2005
Posts: 392

Post (Separately) Posted: Tue Aug 16, 2011 16:33    Post subject: Reply with quote

Тогда ясно.
Back to top
View user's profile Send private message
shveicar



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

Post (Separately) Posted: Thu Oct 25, 2012 21:47    Post subject: Reply with quote

Здравствуйте.
А можно добавить в скрипт
Quote:
Переименовать базовое имя файла под курсором
возможность также, переименовывать не только файл, но и каталог под курсором, или это должен быть отдельный скрипт?
Back to top
View user's profile Send private message
Flasher



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

Post (Separately) Posted: Fri Oct 26, 2012 00:07    Post subject: Reply with quote

Code:
' Переименовать базовое имя файла/папки под курсором на текст в буфере
' Параметр - %V %d
'=====================================================================
With WScript.Arguments
  If .Count = 0 then Wscript.Quit
  F = .Item(0)
End With
With CreateObject("WScript.Shell")
  P = "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\3\1407"
  A = .RegRead(P)
  If A > 0 Then .RegWrite P, 0, "REG_DWORD"
  C = Trim(CreateObject("htmlfile").ParentWindow.ClipboardData.GetData("text"))
  If A > 0 Then .RegWrite P, A, "REG_DWORD"
End With
If C <> "" Then
  If InStr(C, vbLf) > 0 Then C = Left(C, InStr(C, vbCr) - 1)
  R C, """", "''" : R C, "|", "-" : R C, ":", " -"
  R C, ";", ","   : R C, "\", "_" : R C, "/", "_"
  With CreateObject("Scripting.FileSystemObject")
    PF = .GetParentFolderName(F) & "\" : Const M = 1
    If .FolderExists(F) Then
      Name = C
      Do While .FolderExists(PF & Name)
        l = l + 1 : If l < 10^M Then PFx = Right(String(M, "0") & l, M) Else PFx = l
        Name = C & " (" & PFx & ")"
      Loop : .GetFolder(F).Name = Name
    Else
      Ext = .GetExtensionName(F) : Name = C & "." & Ext
      Do While .FileExists(PF & Name)
        l = l + 1 : If l < 10^M Then PFx = Right(String(M, "0") & l, M) Else PFx = l
        Name = C & " (" & PFx & ")." & Ext
      Loop : .GetFile(F).Name = Name
    End If
  End With : WScript.Quit
End If : Sub R(N, A, B) : N = Replace(N, A, B) : End Sub


Last edited by Flasher on Fri Oct 26, 2012 14:35; edited 1 time in total
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, 4  Next
Page 2 of 4

 
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