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 

Преобразование FTP ссылок

 
Post new topic   Reply to topic    Total Commander Forum Index -> Общие вопросы printer-friendly view
View previous topic :: View next topic  
Author Message
b01d



Joined: 06 Jan 2005
Posts: 44

Post (Separately) Posted: Sat May 13, 2006 16:12    Post subject: Преобразование FTP ссылок Reply with quote

День добрый! Столкнулся со следующей проблемой:
При копировании ссылки(CTRL+SHIFT+ENTER) находясь на FTP ресурсе ссылка копируется в виде:
Code:
"ftp://212.212.212.212/Public/Video/Films (фильмы)/int/BMWfilms/1 - Ловушка.avi"

Со всеми пробелами, русскими буквами и т.д. Что в принципе не совсем верно. Хотелось бы получать ссылку в правильном виде, т.е:
Code:
ftp://212.212.212.212/Public/Video/Films%20(%F4%E8%EB%FC%EC%FB)/int/BMWfilms/1%20-%20%CB%EE%E2%F3%F8%EA%E0.avi

Такая ссылка хоть и менее наглядна, зато спокойно открывается любым браузером и любой качалкой.

Возможно ли такое?
Back to top
View user's profile Send private message
horrible



Joined: 01 May 2006
Posts: 6
Location: Магнитогорск

Post (Separately) Posted: Sat May 13, 2006 17:32    Post subject: Reply with quote

ссылки с обычными пробелами и русскими буквами у меня тоже открывается нормально во всех качалках и файрфоксе.
_________________
lug.mgn.ru
vyazovoi.livejournal.com
Back to top
View user's profile Send private message
funduk



Joined: 16 Aug 2005
Posts: 1513
Location: Санкт-Петербург

Post (Separately) Posted: Sat May 13, 2006 17:39    Post subject: Reply with quote

CTRL+SHIFT+ENTER - это ты в комстроку копируешь, или на команду какую повесил?
Если первое, то попробуй команду cm_CopyNetNamesToClip = 2021
Back to top
View user's profile Send private message
b01d



Joined: 06 Jan 2005
Posts: 44

Post (Separately) Posted: Sat May 13, 2006 18:22    Post subject: Reply with quote

2horrible не во всех, например не открываются в VLC Player
2funduk в комстроку копирую. Команда cm_CopyNetNamesToClip дает тоже самое.
Back to top
View user's profile Send private message
funduk



Joined: 16 Aug 2005
Posts: 1513
Location: Санкт-Петербург

Post (Separately) Posted: Sat May 13, 2006 19:45    Post subject: Reply with quote

b01d
Тебе бы могла помочь спецутилита от Lefteous lst2clip (т.к выполняет те же функции). Если нужной тебе функции там всё же нет, обратись к автору, он наверняка сможет добавить.
Back to top
View user's profile Send private message
b01d



Joined: 06 Jan 2005
Posts: 44

Post (Separately) Posted: Sat May 13, 2006 21:43    Post subject: Reply with quote

Уже ближе, но не совсем то. Она вместо "ftp://xx.xx.xx.xx" пишет "file:/0:" т.е. то что в панели тотала написано.
Back to top
View user's profile Send private message
funduk



Joined: 16 Aug 2005
Posts: 1513
Location: Санкт-Петербург

Post (Separately) Posted: Sat May 13, 2006 21:53    Post subject: Reply with quote

Ну так если не эта утилита, то никакая другая Smile ! Обращайся к Lefteous'у.
Хотя, может быть, через скрипт можно вызвать какую-нибудь функцию, которая сама меняет такие пути.
Back to top
View user's profile Send private message
Batya



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

Post (Separately) Posted: Mon May 15, 2006 11:57    Post subject: Reply with quote

b01d
funduk wrote:
Хотя, может быть, через скрипт можно вызвать какую-нибудь функцию, которая сама меняет такие пути.

Такой встроенной функции нет. Вот, написал, вроде, правильно. Если будут ошибки в преобразовании, пиши.
Код *.vbs:
Code:
'==========================================================================
' Преобразование текстовой ссылки в буфере -
'   замена русских символов и пробелов на 16-тиричный код этих символов
'   с префиксом %
'==========================================================================
Dim TCS, Str, StrF, ChCode, Ch, i
Set TCS = CreateObject("TCScript.Helper")
Str = TCS.GetTextFromClip
For i = 1 To Len(Str)
  Ch = Mid(Str, i, 1)
  ChCode = Asc(Ch)
  If (ChCode > 191) or (ChCode = 32) or (ChCode = 168) or (ChCode = 184) Then
    StrF = StrF & "%" & Hex(ChCode)
  Else
    StrF = StrF & Ch
  End If 
Next
TCS.SetTextToClip(StrF)
Set TCS = Nothing
Wscript.Quit

В скрипте используется Script Helper.
Если хочешь, могу дописать скрипт, чтобы не только преобразовывал, а сначала копировал пути в буфер.
Back to top
View user's profile Send private message
b01d



Joined: 06 Jan 2005
Posts: 44

Post (Separately) Posted: Mon May 15, 2006 23:24    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: Tue May 16, 2006 10:21    Post subject: Reply with quote

b01d
Не сложно:
Code:
'==========================================================================
' Преобразование текстовой ссылки в буфере -
'   замена русских символов и пробелов на 16-тиричный код этих символов
'   с префиксом %
' Можно преварительно выполнить копирование путей в буфер,
'   указав в качестве параметра один из вариантов копирования:
'   0 - Копировать в буфер имена файлов
'   1 - Копировать в буфер имена с путями
'   2 - Копировать в буфер имена с UNC-путём
'   3 - Копировать в буфер путь источника
'   4 - Копировать в буфер путь получателя
'==========================================================================
Dim TCS, Str, StrF, ChCode, Ch, i
Set TCS = CreateObject("TCScript.Helper")
If WScript.Arguments.Count > 0 Then
  Select Case WScript.Arguments(0)
    Case 0    TCS.SendCommand(2017)
    Case 1    TCS.SendCommand(2018)
    Case 2    TCS.SendCommand(2021)
    Case 3    TCS.SendCommand(2029)
    Case 4    TCS.SendCommand(2030)
  End Select
End If
Str = TCS.GetTextFromClip
For i = 1 To Len(Str)
  Ch = Mid(Str, i, 1)
  ChCode = Asc(Ch)
  If (ChCode > 191) or (ChCode = 32) or (ChCode = 168) or (ChCode = 184) Then
    StrF = StrF & "%" & Hex(ChCode)
  Else
    StrF = StrF & Ch
  End If 
Next
TCS.SetTextToClip(StrF)
Set TCS = Nothing
Wscript.Quit
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
Page 1 of 1

 
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