Использование русских имён файлов в сгенерированном HTML
Select messages from
# through # FAQ
[/[Print]\]
Goto page 1, 2, 3, 4, 5  Next  :| |:
Total Commander -> Автоматизация Total Commander

#1:  Author: Andrey_ALocation: Сочи PostPosted: Wed Apr 28, 2010 12:42
    —
Сделал скрипт создания списка в 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

#2:  Author: CaptainFlintLocation: Москва PostPosted: Wed Apr 28, 2010 12:46
    —
Andrey_A
В meta-заголовке HTML указана кодировка UTF-8, а список файлов (и, как следствие, текст) — в ANSI. Замени %L на %UL.

#3:  Author: Andrey_ALocation: Сочи PostPosted: Wed Apr 28, 2010 13:37
    —
Спасибо CaptainFlint скрипт заработал с русскими файлами!!!

#4:  Author: BatyaLocation: Москва, Россия PostPosted: Wed Apr 28, 2010 13:49
    —
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.

#5:  Author: sa PostPosted: Wed Apr 28, 2010 14:07
    —
Andrey_A wrote:
Сделал скрипт создания списка

А какая связь с темой "Windows Script Host"? Вроде Helper-то не используется?

#6:  Author: Andrey_ALocation: Сочи PostPosted: Wed Apr 28, 2010 14:14
    —
sa прав, я только что увидел это, изначально я редактировал скрипт, где Helper использовался, но в конце он оказался не нужным, искренне извиняюсь, если модераторы решат перенести в отдельную тему, то перенесут...

#7:  Author: CaptainFlintLocation: Москва PostPosted: Wed Apr 28, 2010 14:38
    —
Логично. Отделил.

#8:  Author: Lev PostPosted: Wed Apr 28, 2010 15:49
    —
[off]
Quote:
А какая связь с темой "Windows Script Host"? Вроде Helper-то не используется?
А при чём тут Helper? WSH - это любые скрипты на vbs и js, что с ТСScriptHelper'ом, что без, что с любым другим ActiveX.
зы Я за разделение тем, но знака равенства WSH и TCS, имхо, ставить не стоит.[/off]

#9:  Author: sa PostPosted: Wed Apr 28, 2010 16:40
    —
[off]
Lev wrote:
но знака равенства WSH и TCS, имхо, ставить не стоит.

Спасибо за разъяснение. Был не прав. Embarassed [/off]

#10:  Author: JKTLocation: Харьков PostPosted: Tue Oct 18, 2011 18:04
    —
Уважаемый Andrey_A
Попробовал ваш скрипт. Большое спасибо. Попробовал плаг WdxInfoPacker но там все слишком наворочено, а для моих целей сие ненадо.
А немогли-бы Вы какнибудь сделать, чтобы вместо текстового html создавался полноценный, т.е. кликабельные ссылки.
Для этого надо лишь сделать по шаблону:
<a href="Полный путь файла.расширение">Имя файла</a><BR>
или еще лучше опционально, ну там при вызове скрипта указывать, надо расширение или нет, по типу
<a href="Полный путь файла.расширение">Имя файла.расширение</a><BR>

#11:  Author: FlasherLocation: Москва PostPosted: Tue Oct 18, 2011 18:08
    —
JKT
ИМХО, лучше использовать текстовый редактор (с соотв. надстройкой, если нет), где страницы открываются в браузере по ссылкам при нажатии.

#12:  Author: JKTLocation: Харьков PostPosted: Tue Oct 18, 2011 18:36
    —
Flasher
Та то понятно. Я как-бы не програмер, но малость знаю. Интересен сам "кликнул" и тебе файл с кликабельными

#13:  Author: FlasherLocation: Москва PostPosted: Tue Oct 18, 2011 19:28
    —
JKT
То же самое, но нормальным языком можно?

#14:  Author: Andrey_ALocation: Сочи PostPosted: Tue Oct 18, 2011 20:45
    —
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

#15:  Author: JKTLocation: Харьков PostPosted: Wed Oct 19, 2011 05:37
    —
Andrey_A
Агроменное Вам спасибо. Все работает. Тошо доктор прописал
Flasher
И Вам спасибо за науку. Постараюсь выражаться на более интуитивном уровне
Quote:
лучше использовать текстовый редактор (с соотв. надстройкой, если нет

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

Очень хорошо, что есть люди, которые помогают другим и причем забесплатно.
Удачи Вам всем. И Спасибо



Total Commander -> Автоматизация Total Commander


output generated using printer-friendly topic mod. All times are GMT + 4 Hours

Goto page 1, 2, 3, 4, 5  Next  :| |:
Page 1 of 5

Powered by phpBB © 2001, 2005 phpBB Group