Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
msblast Новенький участник форума
Зарегистрирован: 11.03.2008 Сообщения: 4
|
Добавлено: Ср Мар 12, 2008 18:51 Заголовок сообщения: |
|
|
Кстати, у меня не получается воспользоваться параметром -x, чтобы после обработки исходный файл удалялся. Пробовал '-x=', '-x=1','-x=0', '-x=''0'' ', '-x=''1'' ' - безрезультатно. Это у всех так, или только у меня?
Добавлено спустя 6 минут 24 секунды:
И ещё вопрос автору: можно ли сделать, чтобы два одновременно запущенных экземпляра данного скрипта не конфликтовали друг с другом? Сейчас если я одновременно скажу обработать два разных fb2, будет выдана ошибка WScript. Правда, несмотря на это скрипт срабатывает корректно. |
|
Вернуться к началу |
|
|
Cd_spb Зрелый участник форума
Зарегистрирован: 28.06.2006 Сообщения: 189
|
Добавлено: Пт Мар 14, 2008 11:25 Заголовок сообщения: |
|
|
msblast, спасибо за добавку к шелу.
1. Сейчас исходные файлы удаляются только если для обработки предложен каталог. Мне просто в голову не приходило, что кому-то может понадобиться удалять одиночный файл.
Если нужно - могу поправить.
2. Я не могу сказать как с проблемой доступа на уровне WScript. А на программном проблема состоит в том, что скрипт использует временный каталог первого уровня - %TEMP%. Т.е. разные копии скрипта записали туда данный, каждая из них начинает их все обрабатывать. Та копия, которая закончила раньше - затрет этот каталог и у более "поздней" возникнет ошибка доступа. Как это обойти в скрипте - я не знаю
Добавлено спустя 2 часа 30 минут 31 секунду:
Новая версия 0.57
http://www.freefile.ru/files/3968 |
|
Вернуться к началу |
|
|
WhiteOwl Новенький участник форума
Зарегистрирован: 16.04.2007 Сообщения: 70
|
Добавлено: Вт Окт 07, 2008 21:04 Заголовок сообщения: |
|
|
А у меня MSXML парсер выдавал русские тексты в юникоде, (у меня оригинальная английская XP SP3) поэтому функция translit() делала чушь...
Переправил ее вот так:
Код: | Function Translit(ByVal InputText)
Dim tmp, i, pos, char
dim cp1251(33)
If IsNull(InputText) Then Exit Function
if Trans=0 then
Translit = InputText
exit function
end if
cp1251(01)="a"
cp1251(02)="b"
cp1251(03)="v"
cp1251(04)="g"
cp1251(05)="d"
cp1251(06)="e"
cp1251(07)="zh"
cp1251(08)="z"
cp1251(09)="i"
cp1251(10)="j"
cp1251(11)="k"
cp1251(12)="l"
cp1251(13)="m"
cp1251(14)="n"
cp1251(15)="o"
cp1251(16)="p"
cp1251(17)="r"
cp1251(18)="s"
cp1251(19)="t"
cp1251(20)="u"
cp1251(21)="f"
cp1251(22)="h"
cp1251(23)="c"
cp1251(24)="ch"
cp1251(25)="sh"
cp1251(26)="sht"
cp1251(27)=""
cp1251(28)="y"
cp1251(29)=""
cp1251(30)="eh"
cp1251(31)="ju"
cp1251(32)="ja"
cp1251(33)="jo"
for i=1 to len(InputText)
char = mid(InputText, i, 1)
if (ascw(char)>=1040 and ascw(char)<=1103) or ascw(char)=1105 then
' unicode cyrillic,
' 32 symbols of upper case first (no "Ё")
' follows by 32 symbols of lower case first and special case - lower case "ё"
if ascw(char)<=1071 then ' upper case "Я"
char = ucase(cp1251(ascw(char)-1039))
elseif ascw(char)=1105 then
char = cp1251(33)
else
char = cp1251(ascw(char)-1071)
end if
elseif ascw(char)=32 then ' space
char="_"
elseif (ascw(char)>32 and ascw(char)<48) or (ascw(char)>57 and ascw(char)<65) then
' all "special" symbols
char=""
end if
tmp = tmp & char
next
' for debug
'wscript.echo "Text to translit=" & InputText & chr(13) & "result=" & tmp
Translit = tmp
End Function |
Названия жанров заданные по русски и все русские сообщения все равно выдаются в испорченной кодировке. Константы заданные внутри vbs в CP1251 не читаются, пока не знаю почему. Но зато главная задача была выполнена - книги по каталогам разбросаны... |
|
Вернуться к началу |
|
|
bayl Новенький участник форума
Зарегистрирован: 08.10.2008 Сообщения: 2
|
Добавлено: Чт Окт 09, 2008 10:29 Заголовок сообщения: |
|
|
Форумчане поделитесь пожалуйста этим скриптом, а то хостинг на котором он лежал закрылся. Заранее спасибо. |
|
Вернуться к началу |
|
|
Cd_spb Зрелый участник форума
Зарегистрирован: 28.06.2006 Сообщения: 189
|
|
Вернуться к началу |
|
|
WhiteOwl Новенький участник форума
Зарегистрирован: 16.04.2007 Сообщения: 70
|
Добавлено: Пт Окт 10, 2008 17:23 Заголовок сообщения: |
|
|
Cd_spb, а что нового то в новой версии?
И еще пара хотелок:
- Добавить еще один уровень каталогов - группировать авторов по первой букве фамилии. Ключ -a=Х (0 - по умолчанию работать как сейчас, 1 - сортировать авторов по алфавиту)
- Вместо простого копирования fb2 файла, делать сохранение его через тот же msxml, это во первых добавит дополнительную страховку от кривых fb2, а во вторых позволит добавить ключик -cp=XXXX и чтоб там можно было задавать UTF8 или cp1251 или все что только msxml примет как возможную кодировку. |
|
Вернуться к началу |
|
|
Cd_spb Зрелый участник форума
Зарегистрирован: 28.06.2006 Сообщения: 189
|
Добавлено: Сб Окт 11, 2008 11:11 Заголовок сообщения: |
|
|
Изначально мне нужно было сохранение пачки fb2 в текст. Да вот разросся.
Я уже было начал переписывать этот скрипт на Сях, но забросил - сначала плагин для Библиотрекаря.НЕТ, сейчас вплотную занялся линухом.
Если хотите - берите, корректируйте. В плане сохранения там все тривиально. Редактировать в обычном текстовом редакторе, ест-но не ворде
Если будут вопросы - обращайтесь, может смогу помочь. |
|
Вернуться к началу |
|
|
bayl Новенький участник форума
Зарегистрирован: 08.10.2008 Сообщения: 2
|
Добавлено: Вс Окт 12, 2008 12:27 Заголовок сообщения: |
|
|
Спасибо за сслыку |
|
Вернуться к началу |
|
|
|