Страница 3 из 3

Добавлено: Сб окт 09, 2010 21:52
Tol!k
Batya
Скрипт не работает, если в пути к файлам есть уникодные символы.
Ошибка: Требуется объект: ''
Код: 800A01A8
Нельзя исправить?

PS
В именах и в буфере уникода нет (и не будет)

Добавлено: Вс окт 10, 2010 13:08
Samwatas
Хочешь, можешь сделать консольную утилиту, которая будет выдавать в консоль содержимое буфера обмена, предварительно заменяя запрещённые символы :?

Код: Выделить всё

ConsoleWrite(StringRegExpReplace(StringStripWS(StringStripCR(ClipGet()),3),'[\\/:*?"<>|]+','_'))
Просто откомпилируй в екзе с помощью Aut2exe, поставив галочку "Console".

Добавлено: Вс окт 10, 2010 13:13
Tol!k
Не, это умеет сам скрипт:

Код: Выделить всё

'Массив недопустимых символов. Заменяем их указанным ниже символом 
CharArr = Array(Chr(10), Chr(13), "\", "/")
У меня проблема в китайских и японских иероглифах в названиях папок.

Добавлено: Вс окт 10, 2010 14:01
Samwatas
Я имел в виду что, имея консольную утилиту, ты мог бы выполнять задачи, выполняемые скриптом, при помощи своих любимых батников. Но раз речь идёт о иероглифах в названии папок, то я не знаю, способны ли батники с таким работать.

Добавлено: Вс окт 10, 2010 14:18
Tol!k
Если Batya не победит иероглифы, я подумаю над батником :lol:

ЗЫ
Проблема обойдена заменой параметров на %F

Добавлено: Пн окт 11, 2010 10:07
Batya
Tol!k
Как я понимаю, раз проблема решилась использованием %F, у тебя уникод в путях, а не в именах файлов.
Более корректно будет использовать %WL и в скрипте поменять строку

Код: Выделить всё

For Each F In Split(FSO.OpenTextFile(FileList, 1, False).ReadAll, vbNewLine)
на

Код: Выделить всё

For Each F In Split(FSO.OpenTextFile(FileList, 1, False, -1).ReadAll, vbNewLine)

Добавлено: Пн окт 11, 2010 18:00
Tol!k
Batya, ещё раз спасибо.