Обсуждение вопросов автоматизации Total Commander с помощью сторонних программ и скриптовых технологий.
Модераторы: Avada , CaptainFlint , Nik , d-view , Моторокер
Tol!k
Сообщения: 1727 Зарегистрирован: Вт апр 01, 2008 20:02
Откуда: Арзамас
Сообщение
Tol!k » Сб окт 09, 2010 21:52
Batya
Скрипт не работает, если в пути к файлам есть уникодные символы.
Ошибка: Требуется объект: ''
Код: 800A01A8
Нельзя исправить?
PS
В именах и в буфере уникода нет (и не будет)
Samwatas
Сообщения: 95 Зарегистрирован: Сб сен 12, 2009 20:26
Сообщение
Samwatas » Вс окт 10, 2010 13:08
Хочешь, можешь сделать консольную утилиту, которая будет выдавать в консоль содержимое буфера обмена, предварительно заменяя запрещённые символы
Код: Выделить всё
ConsoleWrite(StringRegExpReplace(StringStripWS(StringStripCR(ClipGet()),3),'[\\/:*?"<>|]+','_'))
Просто откомпилируй в екзе с помощью Aut2exe, поставив галочку "Console".
Tol!k
Сообщения: 1727 Зарегистрирован: Вт апр 01, 2008 20:02
Откуда: Арзамас
Сообщение
Tol!k » Вс окт 10, 2010 13:13
Не, это умеет сам скрипт:
Код: Выделить всё
'Массив недопустимых символов. Заменяем их указанным ниже символом
CharArr = Array(Chr(10), Chr(13), "\", "/")
У меня проблема в китайских и японских иероглифах в названиях папок.
Samwatas
Сообщения: 95 Зарегистрирован: Сб сен 12, 2009 20:26
Сообщение
Samwatas » Вс окт 10, 2010 14:01
Я имел в виду что, имея консольную утилиту, ты мог бы выполнять задачи, выполняемые скриптом, при помощи своих любимых батников. Но раз речь идёт о иероглифах в названии папок, то я не знаю, способны ли батники с таким работать.
Tol!k
Сообщения: 1727 Зарегистрирован: Вт апр 01, 2008 20:02
Откуда: Арзамас
Сообщение
Tol!k » Вс окт 10, 2010 14:18
Если
Batya не победит иероглифы, я подумаю над батником
ЗЫ
Проблема обойдена заменой параметров на %F
Batya
Сообщения: 2236 Зарегистрирован: Ср дек 15, 2004 09:51
Откуда: Москва, Россия
Сообщение
Batya » Пн окт 11, 2010 10:07
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)
Нет, я не сплю. Я просто медленно моргаю.
Tol!k
Сообщения: 1727 Зарегистрирован: Вт апр 01, 2008 20:02
Откуда: Арзамас
Сообщение
Tol!k » Пн окт 11, 2010 18:00
Batya , ещё раз спасибо.