[Autoit] Редактор комментариев descript.ion

Обсуждение вопросов автоматизации Total Commander с помощью сторонних программ и скриптовых технологий.

Модераторы: Avada, CaptainFlint, Nik, d-view, Моторокер

Loopback
Сообщения: 1646
Зарегистрирован: Пн сен 07, 2009 09:29

Сообщение Loopback »

Flasher писал(а):Пробел? Я не писал про пробел. А без верхнего перевода строки прекрасно читает.
Перевод, конечно.

На 9.51 в самом деле читает, на версии, на которой делалось - не читал, просто не отображал подсказку, и при правке стандартным методом ничего не выводилось.

Но при создании лишний перевод строки тотал добавляет и сейчас.
Flasher писал(а):0.6-0.8 сек. Эта дольная единица изучается с младших классов школы.
Вот как-то меньше всего ожидал здесь увидеть децисекунды вместо привычных миллисекунд. Ок, зато оригинально.

Ни разу не встречал таких цифр, уж тем более на двух файлах. Может антивирус тормозит или что еще.
Flasher писал(а):Для начала код нужен. Тут вообще раздел по скриптам, утилиты — в Плагинах. Тем более, что с учётом маркера в заголовке исходник сам напрашивается.
И в самом деле, давно обещал. Выложил.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Loopback писал(а):Но при создании лишний перевод строки тотал добавляет и сейчас.
Я понимаю, но я про то и пишу, что неважно, как там Тотал, просто об этом баге Гислеру написать надо, а здесь поправить, не ориентируюясь на текущее положение.
Loopback писал(а):Может антивирус тормозит или что еще.
Не пользуюсь, но, благо, теперь есть код, смогу точнее проверить. Спасибо, что выложил.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
lsched
Сообщения: 74
Зарегистрирован: Вт окт 20, 2009 08:53
Откуда: Россия, Саратов

Сообщение lsched »

Flasher писал(а):0.6-0.8 сек. Эта дольная единица изучается с младших классов школы.
Вы хоть свои же ссылки иногда читайте (если школьную программу не помните). Например, такие:
«С единицей измерения «секунда», как правило, используются только дольные приставки СИ (кроме деци- и санти-).».
Loopback
Сообщения: 1646
Зарегистрирован: Пн сен 07, 2009 09:29

Сообщение Loopback »

По следам вчерашнего обсуждения, новая версия 2.2.

+ оптимизирована библиотека для работы с descript.ion, скорость загрузки ANSI/UTF8 увеличена на ~15%
- исправлена потеря непустого описания по умолчанию при переключении файлов
- добавлен забытый скроллбар в список файлов при большом числе файлов
- убран ненужный в последних версиях ТС дополнительный перевод строки в файлах с кодировкой UTF-8
- исправлено масштабирование на DPI выше стандартного

Надеюсь, не заоптимизировал до полной неработоспособности...
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

lsched писал(а):Вы хоть свои же ссылки иногда читайте (если школьную программу не помните).
О, какие мы дерзкие. :lol: Жизнь не задалась? Или сильно обидел кто? Сочувствую.
P.S.: Что хотел своей бессмысленной цитатой сказать "знаток" школьной программы я, пожалуй, оставлю за оффтопным бортом...


Loopback
Спасибо. Вообще инструменту откровенно не хватает важного — проверки имён и коммента на наличие юникодных символов для автоматической подстановки правильной кодировки (по CommentPreferredFormat, как я в своих скриптах раньше делал).
И лучше сделать опциональным вывод сообщения:
При изменении кодировки из ANSI в юникод, может потребоваться конвертация имен файлов. Вы хотите чтобы программа попыталась это сделать?
---------------------------
Да Нет
---------------------------
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Loopback
Сообщения: 1646
Зарегистрирован: Пн сен 07, 2009 09:29

Сообщение Loopback »

Flasher
Кмк конкретно у нас это не такая уж и критичная проблема. Вот для китайцев да. Но сделать можно, польза будет.

Только надо понять, в какой момент пользователю будет выдаваться сообщение, при сохранении? Мне, честно говоря, не очень нравится такая логика, когда после нажатия сохранить появляется сообщение, потом происходит возврат в интерфейс, пользователь выбирает юникод, потом опять сохранить. А по другому тут не сделать, т.к. юникодных кодировок целых три. Насчет автоматики - не очень понятно, как ее тут прикрутить нормально, смена кодировки при появлении юникодного символа в вводе? Лично я не приемлю, когда такие вещи меняются незаметно. Тогда индикатор делать какой-нибудь?

Возможно, сейчас было бы правильно всегда по умолчанию использовать какой-нибудь из юникодных вариантов. Все же ANSI пора отправляться на покой, не вижу ни единого резона его сейчас использовать в комментариях.

По опцональному сообщению: не хотел здесь делать конфигурацию, еще один флаг? А если подумать, может оно и вовсе не нужно, все равно без преобразования работать не будет (наверно, не помню), а так есть шанс восстановить полное имя.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Loopback
Это проблема далеко не только для китайцев, список языков с Юникодом там длинный. И у нас никто имена скачанного контента с Юникодом не отменял.

Сообщение при сохрании вообще не должно выдаваться. Зачем? Выделил имена с юникодом или добавил текст с ним, сохранение произойдёт в Юникод автоматом. То, что кодировки 3, — это не проблема, я же назвал регулирующий ключ.
[cut="Я вот так у себя делал:"]

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

  Select Case Key
    Case 0
    Case 1 Enc = "UTF-16LE"
    Case 2 Enc = "UTF-16BE"
    Case 3 Enc = "UTF-8"
    Case 4 If UniCheck(FileName) Then Enc = "UTF-16LE"
    Case 5 If UniCheck(FileName) Then Enc = "UTF-16BE"
    Case 6 If UniCheck(FileName) Then Enc = "UTF-8"
  End Select
[/cut]Насчёт индикатора сам смотри, если нужен. Мне не особо.

Вариант умолчательного Юникода может быть разве что опциональным, т. к. в ТС предусмотрены проверочные варианты "Простой текст+...", поэтому я и ориентируюсь на них.

Сообщение при смене в списке лично мне только мешает. Поэтому сам решай — опция или совсем убрать.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Loopback
Сообщения: 1646
Зарегистрирован: Пн сен 07, 2009 09:29

Сообщение Loopback »

Flasher писал(а):Это проблема далеко не только для китайцев
Я не говорю, что совсем нет проблемы, просто у нас она значительно менее актуальна. Даже по скачанному - ну может пару раз за последние несколько лет с таким сталкивался.
Flasher писал(а):Сообщение при сохрании вообще не должно выдаваться. Зачем? Выделил имена с юникодом или добавил текст с ним, сохранение произойдёт в Юникод автоматом. То, что кодировки 3, — это не проблема, я же назвал регулирующий ключ.
Так полностью меняется логика работы. Сейчас в комбобоксе при запуске показывается актуальная кодировка файла, которую пользователь может явным образом изменить. Если делать автоматический режим, там будет показываться "требуемая" кодировка. И комбобокс в этом случае должен быть неактивным и не должен давать возможности менять что-то.

Ну можно наверно какой-то опцией всё организовать, чтобы пользователь осознавал, что раз включил такой-то режим - значит будет работать так.

"Проверочные" варианты вообще считаю излишними. Наличие их в ТС здесь ни к чему не обязывает, так же как наличие в нём кодировки DOS.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Loopback писал(а):ну может пару раз за последние несколько лет с таким сталкивался.
Это уже вопрос востребованности, у всех она разная. Как пример наше обсуждение пользы от автосмены кодировки. Кому-то постоянно требуется, а кому-то вообще нет, как в твоём случае.
Loopback писал(а):И комбобокс в этом случае должен быть неактивным и не должен давать возможности менять что-то.
Почему же? Просто список при юникодных именах должен быть сокращён до юникодных кодировок. А вот если есть появляется юникодный коммент, то запись должна оринетироваться на ключ.
Loopback писал(а):Ну можно наверно какой-то опцией всё организовать
Пусть будет опция. Лично мне бы она не потребовалась.
Loopback писал(а):Наличие их в ТС здесь ни к чему не обязывает, так же как наличие в нём кодировки DOS.
В смысле не обязывает? Код же конкретно под ТС написан. Логична опциональная связка с Тоталом. Если юникодных символов нет, то — ANSI, если есть, то — в соответствии со значениями (4,5,6) ключа. В случае первых 3-х (1,2,3) связка уже жёсткая (безусловная). А DOS-кодировка — это рудимент от древнючих версий, она и в справке не рекомендована, её нет смысла учитывать.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Loopback
Сообщения: 1646
Зарегистрирован: Пн сен 07, 2009 09:29

Сообщение Loopback »

Flasher писал(а):А вот если есть появляется юникодный коммент, то запись должна оринетироваться на ключ.
А при юникодных именах, значит, ориентироваться не должна? Кодировка-то едина для всего файла.
Flasher писал(а):Лично мне бы она не потребовалась.
Если сделать этот режим не по умолчанию - очень даже потребуется :wink:
Flasher писал(а):В смысле не обязывает? Код же конкретно под ТС написан. Логична опциональная связка с Тоталом. Если юникодных символов нет, то — ANSI, если есть, то — в соответствии со значениями (4,5,6) ключа. В случае первых 3-х (1,2,3) связка уже жёсткая (безусловная).
Под ТС, но вовсе не обязательно слепо повторять все возможные опции, это все-таки отдельное приложение. Вот мне представляются довольно бессмысленными эти три опции в тотале. Если уж прям так хочется использовать ANSI - ок, но какой смысл сохранять в ANSI, если все равно на первом же юникодном символе файл перекодируется в юникод? Если это вопрос совместимости, то с чем? В любом случае скрипт может прочитать созданные ТС файлы, и наоборот.

Опять же, есть резон форсить использование юникода - скорость. Загрузка юникода почти в 2 раза быстрее ANSI, UTF-8 - примерно в полтора.

В общем, в целом идея имеет место быть, но в деталях реализации пока не уверен. Так или иначе, все равно же буду делать в своем понимании прекрасного, не устроит - исходник выложен :)
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Loopback писал(а):А при юникодных именах, значит, ориентироваться не должна?
Должна только для автовыбора, но замораживать комбобокс не следует.
Loopback писал(а):Если сделать этот режим не по умолчанию - очень даже потребуется
Я же пишу "бы". Если бы сам делал, имеется в виду.
Loopback писал(а):Если уж прям так хочется использовать ANSI - ок, но какой смысл сохранять в ANSI, если все равно на первом же юникодном символе файл перекодируется в юникод?
Так сейчас ANSI присутствует в списке безусловно, а так будет по условию. Или теперь вообще хочешь его полностью выпилить?
Loopback писал(а):В любом случае скрипт может прочитать созданные ТС файлы, и наоборот.
Это да.
Loopback писал(а):Опять же, есть резон форсить использование юникода - скорость.
Но у тебя всё равно 2 юникода в списке. Второй, получается, будет задвинут? И с таким успехом можно вообще от комбобокса отказаться в пользу одной кодировки без всяких условий. Ты к этому ведёшь? :)
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Loopback
Сообщения: 1646
Зарегистрирован: Пн сен 07, 2009 09:29

Сообщение Loopback »

Flasher писал(а):но замораживать комбобокс не следует
Уже подумал, соглашусь.
Flasher писал(а):Или теперь вообще хочешь его полностью выпилить?
Нет, конечно.
Flasher писал(а):Но у тебя всё равно 2 юникода в списке. Второй, получается, будет задвинут? И с таким успехом можно вообще от комбобокса отказаться в пользу одной кодировки без всяких условий. Ты к этому ведёшь?
Не 2, а 3 - UTF-8 же тоже юникод.

Нет, конечно, я веду к тому, чтобы подталкивать пользователя к явному выбору юникода любого типа для всех файлов и комментариев. Т.е. всегда юникод. Что эквивалентно второй-четвертой опции в ТС.

Если же будет в наличии опция с ansi+юникод (пятая -седьмая опция ТС), то при выборе ее пользователем большую часть времени (а может и всегда, если не встретится юникодный символ) работа будет вестись в ANSI. А это не оптимальный вариант, да еще и не имеющий какого-то особого смысла (ну или я его не вижу).
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Loopback писал(а):Т.е. всегда юникод.
Ты же выше ответил, что ANSI не хочешь выпиливать. :?:
Loopback писал(а):Если же будет в наличии опция с ansi+юникод
Я такую опцию не предлагал. Предполагалось, что при выборе неюникодных имён число пунктов списка будет тем же, и по умолчанию будет установлена кодировка ANSI. А если в комменте появится Юникод, то descript.ion сохранится автоматически в той смежной кодировке, которая соответствует 4-6 значениям ключа. Она же выберется в списке при наличии Юникода в именах.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Аватара пользователя
imig73
Сообщения: 285
Зарегистрирован: Вт июн 18, 2013 13:21
Откуда: г. Иркутск

Сообщение imig73 »

Loopback
Спасибо огромное, всё очень круто.

Flasher
Ну вот теперь время запуска от оригинала мало чем отличается, или мне кажется и надо креститься?
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

imig73
От оригинала, запущенного стандартно, или хотя бы по той команде, что я привёл, ощутимо отличается.
Сперва показатели были 500+ мс по нарастающей (40+ мс на объект).
И я тут заглянул в ОУ и вспомнил, что запускал два экземпляра volumouse из под под юзера и админа, чтобы оно хоть как-то работало. После отключения/включения обеих скорость резко возросла (хоть и не перестала быть ощутимой).
Минимальные показатели вышли такими:

• 154 мс на объекте с одним символом
• 175 мс на объекте со 100 символами

• 170 мс на 5 объектах по одному символу
• 223 мс на 5 объектах по 100 символов

• 195 мс на 10 объектах по одному символу
• 256 мс на 10 объектах по 100 символов

• 1600 мс на 7424 объектах в папке winsxs
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Ответить