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 

Использование русских имён файлов в сгенерированном HTML
Goto page 1, 2, 3, 4, 5  Next
 
Post new topic   Reply to topic    Total Commander Forum Index -> Автоматизация Total Commander printer-friendly view
View previous topic :: View next topic  
Author Message
Andrey_A



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

Post (Separately) Posted: Wed Apr 28, 2010 12:42    Post subject: Reply with quote

Сделал скрипт создания списка в html формате, помогите его исправить, чтобы русские файлы отображались корректно (сейчас отображаются кубики)
Code:
'=====================================================================
' Создание списка файлов в html формате
'
' Параметры:
' {%UL или %UF} {текст до} {текст после} {путь сохранения} 
'
' Пример вызова из TC:
' %UL "" "" %t
' (сохранение в соcедней панели списка в html)
'=====================================================================
Dim fso, Stroki, ts, nn, wsh, text1, text2, Path

Set fso = CreateObject("Scripting.FileSystemObject")
Set ts = CreateObject("Scripting.FileSystemObject").OpenTextFile(WScript.Arguments(0), 1)
Set WSH = CreateObject("WScript.Shell")
text1 = WScript.Arguments(1)
text2 = WScript.Arguments(2)
Path = WScript.Arguments(3)
text = text + "   "
   Stroki=""
     Stroki = "<head>"                                                                            & vbNewLine &_
       "<meta http-equiv='Content-Type'content='text/html; charset=utf-8' />"                     & vbNewLine &_
       "<style type='text/css'>"                                                                  & vbNewLine &_
       "body {background-color: #E4F3FF;font-family: sans-serif, Helvetica, Arial;font-size:px;}" & vbNewLine &_
       "h1 {color: #2D58AE;font-size: 25px;}"                                                     & vbNewLine &_
       "hr {color: #555555;}"                                                                     & vbNewLine &_
       "</style>"                                                                                 & vbNewLine &_
       "</head>"                                                                                  & vbNewLine &_
       "<body>"                                                                                   & vbNewLine &_
       "<h1>List</h1>"                                                                            & vbNewLine &_
       "<hr />"                                                                                   & vbNewLine &_
       "<ol>"                                                                                     & vbNewLine &_
    Stroki
   Do Until ts.AtEndOfStream
         Stroki=Stroki & "    <li>" & text1 & ts.ReadLine & text2 & "</li>" & vbNewLine 
   Loop
 ts.Close

Stroki = Stroki & "</ol>" & vbNewLine & "<hr />" & vbNewLine & "</body>" & vbNewLine & "</html>" & vbNewLine

   Set MyFile= fso.CreateTextFile(Path & "Spisok" & "." & "html", True)
   MyFile.Write(Stroki)
   MyFile.Close

Set ts=Nothing
Set fso = Nothing

WScript.Quit

изменил с учётом советов двух последующих постов


Last edited by Andrey_A on Wed Apr 28, 2010 14:01; edited 1 time in total
Back to top
View user's profile Send private message
CaptainFlint



Joined: 14 Dec 2004
Posts: 6151
Location: Москва

Post (Separately) Posted: Wed Apr 28, 2010 12:46    Post subject: Reply with quote

Andrey_A
В meta-заголовке HTML указана кодировка UTF-8, а список файлов (и, как следствие, текст) — в ANSI. Замени %L на %UL.
_________________
Почему же, ё-моё, ты нигде не пишешь "ё"?
Back to top
View user's profile Send private message
Andrey_A



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

Post (Separately) Posted: Wed Apr 28, 2010 13:37    Post subject: Reply with quote

Спасибо CaptainFlint скрипт заработал с русскими файлами!!!
Back to top
View user's profile Send private message
Batya



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

Post (Separately) Posted: Wed Apr 28, 2010 13:49    Post subject: Reply with quote

Andrey_A
Вместо char(34) можно использовать апостроф:
Code:
     Stroki = "<head>"                                                                            & vbNewLine &_
       "<meta http-equiv='Content-Type'content='text/html; charset=utf-8' />"                     & vbNewLine &_
       "<style type='text/css'>"                                                                  & vbNewLine &_
       "body {background-color: #E4F3FF;font-family: sans-serif, Helvetica, Arial;font-size:px;}" & vbNewLine &_
       "h1 {color: #2D58AE;font-size: 25px;}"                                                     & vbNewLine &_
       "hr {color: #555555;}"                                                                     & vbNewLine &_
       "</style>"                                                                                 & vbNewLine &_
       "</head>"                                                                                  & vbNewLine &_
       "<body>"                                                                                   & vbNewLine &_
       "<h1>List</h1>"                                                                            & vbNewLine &_
       "<hr />"                                                                                   & vbNewLine &_
       "<ol>"                                                                                     & vbNewLine &_
    Stroki

Если не хочешь апострофов, то можно указать кавычки, задвоив их, - так будет читабельнее.
И тогда уж поправь в описании в шапке скрипта %L на %UL.
_________________
Нет, я не сплю. Я просто медленно моргаю.
Back to top
View user's profile Send private message
sa



Joined: 29 Apr 2009
Posts: 2563

Post (Separately) Posted: Wed Apr 28, 2010 14:07    Post subject: Reply with quote

Andrey_A wrote:
Сделал скрипт создания списка

А какая связь с темой "Windows Script Host"? Вроде Helper-то не используется?
Back to top
View user's profile Send private message
Andrey_A



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

Post (Separately) Posted: Wed Apr 28, 2010 14:14    Post subject: Reply with quote

sa прав, я только что увидел это, изначально я редактировал скрипт, где Helper использовался, но в конце он оказался не нужным, искренне извиняюсь, если модераторы решат перенести в отдельную тему, то перенесут...
Back to top
View user's profile Send private message
CaptainFlint



Joined: 14 Dec 2004
Posts: 6151
Location: Москва

Post (Separately) Posted: Wed Apr 28, 2010 14:38    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: Wed Apr 28, 2010 15:49    Post subject: Reply with quote

[off]
Quote:
А какая связь с темой "Windows Script Host"? Вроде Helper-то не используется?
А при чём тут Helper? WSH - это любые скрипты на vbs и js, что с ТСScriptHelper'ом, что без, что с любым другим ActiveX.
зы Я за разделение тем, но знака равенства WSH и TCS, имхо, ставить не стоит.[/off]
Back to top
View user's profile Send private message
sa



Joined: 29 Apr 2009
Posts: 2563

Post (Separately) Posted: Wed Apr 28, 2010 16:40    Post subject: Reply with quote

[off]
Lev wrote:
но знака равенства WSH и TCS, имхо, ставить не стоит.

Спасибо за разъяснение. Был не прав. Embarassed [/off]
Back to top
View user's profile Send private message
JKT



Joined: 22 Sep 2009
Posts: 116
Location: Харьков

Post (Separately) Posted: Tue Oct 18, 2011 18:04    Post subject: Reply with quote

Уважаемый Andrey_A
Попробовал ваш скрипт. Большое спасибо. Попробовал плаг WdxInfoPacker но там все слишком наворочено, а для моих целей сие ненадо.
А немогли-бы Вы какнибудь сделать, чтобы вместо текстового html создавался полноценный, т.е. кликабельные ссылки.
Для этого надо лишь сделать по шаблону:
<a href="Полный путь файла.расширение">Имя файла</a><BR>
или еще лучше опционально, ну там при вызове скрипта указывать, надо расширение или нет, по типу
<a href="Полный путь файла.расширение">Имя файла.расширение</a><BR>
Back to top
View user's profile Send private message
Flasher



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

Post (Separately) Posted: Tue Oct 18, 2011 18:08    Post subject: Reply with quote

JKT
ИМХО, лучше использовать текстовый редактор (с соотв. надстройкой, если нет), где страницы открываются в браузере по ссылкам при нажатии.
Back to top
View user's profile Send private message
JKT



Joined: 22 Sep 2009
Posts: 116
Location: Харьков

Post (Separately) Posted: Tue Oct 18, 2011 18:36    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: Tue Oct 18, 2011 19:28    Post subject: Reply with quote

JKT
То же самое, но нормальным языком можно?
Back to top
View user's profile Send private message
Andrey_A



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

Post (Separately) Posted: Tue Oct 18, 2011 20:45    Post subject: Reply with quote

JKT - попробуй, вроде всё, что ты описывал:

Code:
'=====================================================================
' Создание списка файлов с ссылками в html формате
'
' Параметры:
' {%UL или %UF} {текст до} {текст после} {путь сохранения} 
'
' Пример вызова из TC:
' %UL "" "" %t
' (сохранение в соcедней панели списка в html)
'=====================================================================
Dim FSO, Stroki, ts, nn, wsh, text1, text2, Path

Set FSO = CreateObject("Scripting.FileSystemObject")
List = Split(FSO.OpenTextFile(WScript.Arguments(0)).ReadAll, vbNewLine)
Set WSH = CreateObject("WScript.Shell")
text1 = WScript.Arguments(1)
text2 = WScript.Arguments(2)
Path = WScript.Arguments(3)
text = text + "   "
Stroki = "<head>" & vbNewLine &_
               "<meta http-equiv='Content-Type'content='text/html; charset=utf-8' />" & vbNewLine &_
               "<style type='text/css'>" & vbNewLine &_
               "body {background-color: #E4F3FF;font-family: sans-serif, Helvetica, Arial;font-size:px;}" & vbNewLine &_
               "h1 {color: #2D58AE;font-size: 25px;}" & vbNewLine &_
               "hr {color: #555555;}" & vbNewLine &_
               "</style>" & vbNewLine &_
               "</head>" & vbNewLine &_
               "<body>" & vbNewLine &_
               "<h1>List</h1>" & vbNewLine &_
               "<hr />" & vbNewLine &_
               "<ol>"                                                                                     
For i = 0 To Ubound(List)
  If Len(List(i)) > 0 Then Stroki = Stroki & vbNewLine & "    <li><a href='" & List(i) & "'>" & text1 & FSO.GetFileName(List(i)) & text2 & "</a><BR></li>"
Next

Stroki = Stroki & vbNewLine  & "</ol>" & vbNewLine & "<hr />" & vbNewLine & "</body>" & vbNewLine & "</html>" & vbNewLine

Set MyFile= FSO.CreateTextFile(Path & "Spisok" & "." & "html", True)
MyFile.Write(Stroki)
MyFile.Close

Set FSO = Nothing
WScript.Quit
Back to top
View user's profile Send private message
JKT



Joined: 22 Sep 2009
Posts: 116
Location: Харьков

Post (Separately) Posted: Wed Oct 19, 2011 05:37    Post subject: Reply with quote

Andrey_A
Агроменное Вам спасибо. Все работает. Тошо доктор прописал
Flasher
И Вам спасибо за науку. Постараюсь выражаться на более интуитивном уровне
Quote:
лучше использовать текстовый редактор (с соотв. надстройкой, если нет

Это мне понятно. Но иногда я даю человекам папки, и они только , что умеют "нажать и ждать результат". Ну не все-же шурупают в этих редакторах и т.п. А вот для таких упоротых я-бы и кинул список - нажал - открылся прогой по умолчанию.

Очень хорошо, что есть люди, которые помогают другим и причем забесплатно.
Удачи Вам всем. И Спасибо
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 1, 2, 3, 4, 5  Next
Page 1 of 5

 
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