Пакетное изменение кодировки файлов

Russian main discussion
  • Author
  • Message
Offline
Posts: 876
Joined: Tue Jul 24, 2007 8:54 am

Post by Fr0sT »

"Не открывать программу" и "Не показывать ГУЙ" вообще-то слегка разные вещи.

Offline
Posts: 3217
Joined: Wed Nov 29, 2006 1:19 pm
Location: Киев, Русь
Contact:

Post by VladSh »

Fr0sT
Что-то от этого сразу становится невозможным?

Offline
Posts: 2247
Joined: Tue Aug 07, 2007 2:03 pm
Location: Vinnitsa, Ukraine

Post by FeyFre »

VladSh, указанные функции(OpenFile, SaveFile, ReadFile) не выполяются плагином, а именно АР, плагин только заполняет соответсвующую структуру и дергает функцию. обертки вокруг посылки сообщения главному окну АР(либо иногда окну редактирования). Главного окна нету - нету и оберток. Выносить функции и кода АР в код плагина - такой себе не малый кусок работы, и видимо Инструктор считает его тяжелее, чем оберунть весь АР в библиотеку(что он успешно сделал, но в силу особенностей АР реузльтат не особо юзабелен).

Offline
Posts: 3217
Joined: Wed Nov 29, 2006 1:19 pm
Location: Киев, Русь
Contact:

Post by VladSh »

FeyFre
А зачем именно "в библиотеку" (dll), можно ж и из exe вызывать (я в инете видел инфу)? Имею ввиду, что без окна-то (без посылки окну, а просто вызов, как функции из системных dll дёргаются) можно сделать?
К примеру, дёргаем же разные консольные проги, у них ведь нет окна? Она что-то сделала и выплюнула результат в файл или поток.

Offline
Posts: 2247
Joined: Tue Aug 07, 2007 2:03 pm
Location: Vinnitsa, Ukraine

Post by FeyFre »

Она что-то сделала и выплюнула результат в файл или поток.
Велосипед под названием iconv решили переизобрести?

Offline
Posts: 3217
Joined: Wed Nov 29, 2006 1:19 pm
Location: Киев, Русь
Contact:

Post by VladSh »

FeyFre
Это только пример. Я о принципе спрашивал: возможно ли сделать так, чтобы работать с AkelPad'ом с помощью командной строки как с полноценной консольной прогой, где не предполагается UI? Думаю, возможно.

Offline
Posts: 2247
Joined: Tue Aug 07, 2007 2:03 pm
Location: Vinnitsa, Ukraine

Post by FeyFre »

VladSh, сделать.... ну возможно, но это нужно сделать. Сделать и протестировать, косяки выловить... гемора столько, что ну его на... я в собственном софте через пол года столько косяков нахожу, что офигеваю как оно работало вообще.

Offline
Posts: 876
Joined: Tue Jul 24, 2007 8:54 am

Post by Fr0sT »

Учитывая, что в Акеле всё взаимодействие построено на оконных сообщениях... очень вряд ли.

А можешь объяснить сакральный смысл этого реквеста? И что не устраивает в вызове

Code: Select all

AkelPad /Show(0) /OpenFile(...) /SaveFile(...) /quit
?

Offline
Posts: 3217
Joined: Wed Nov 29, 2006 1:19 pm
Location: Киев, Русь
Contact:

Post by VladSh »

Fr0sT wrote:А можешь объяснить сакральный смысл этого реквеста?
1. Не зависеть от таких вещей, запущена программа или нет, от количества вкладок и т.п., т.е. чисто работа с переданным(и) файлами.
2. Иметь возможность использовать некоторые функции AkelPad'а для работы с файлами (здесь бы был полезен вызов некоторых скриптов по обработке файлов).
Вопрос: а зачем здесь вообще AkelPad, и можно просто внешним скриптом открывать файл с помощью fso и обрабатывать файл как хочешь, имеет место быть, ответ пока сакрален даже для меня :mrgreen:

Offline
Posts: 2247
Joined: Tue Aug 07, 2007 2:03 pm
Location: Vinnitsa, Ukraine

Post by FeyFre »

открывать файл с помощью fso и обрабатывать файл как хочешь,
тут один но очень большой проблем - fso с кодировок не умеет.

Offline
Posts: 876
Joined: Tue Jul 24, 2007 8:54 am

Post by Fr0sT »

VladSh
Отдельная "batch" копия Акеля в режиме SDI с нужным набором скриптов (что, кстати, и так потребуется - иначе все кодируемые файлы будут пихаться в recently used, что явно не понравится юзеру). Запускать из батча по call /wait, с параметром /Show(0). Чего еще-то желать?

Offline
Posts: 3217
Joined: Wed Nov 29, 2006 1:19 pm
Location: Киев, Русь
Contact:

Post by VladSh »

Fr0sT wrote:все кодируемые файлы будут пихаться в recently used
Это пример того, что всё жёстко завязано на UI.
Есть правила "разработки ПО", как например "данные должны быть отделены от кода", "логика не должна смешиваться с ядром", "функционал, который мог бы выполняться в отдельности от интерфейса, должен быть выделен"... «И так далее, и так далее» © В данном случае, если бы был выполнен последний пункт, то мы бы здесь не разговаривали на эту тему. И это не только к Акелу относится, все косячат.

Offline
Posts: 876
Joined: Tue Jul 24, 2007 8:54 am

Post by Fr0sT »

VladSh, правила ради правил - тупиковый путь, который ведет к безумию вроде SomeObjectFactoryFactoryFactory и hello world на паттернах весом в 10 КБайт кода.
Единственный осуществимый реквест, который можно отсюда выделить, кмк, - это режим /batch в опциях комстроки, который бы отключал использование некоторых не нужных в пакетном режиме фич.

P.S. Кроме того, также есть правило целесообразности, трудозатрат и востребованности. Изолировать ядро в отдельный модуль и мучиться с взаимодействием только ради того, чтобы 1% юзеров смог раз в месяц что-то там перегнать в пакетном режиме - ну, это просто глупо.

Offline
Posts: 3217
Joined: Wed Nov 29, 2006 1:19 pm
Location: Киев, Русь
Contact:

Post by VladSh »

Fr0sT wrote:Единственный осуществимый реквест, который можно отсюда выделить, кмк, - это режим /batch в опциях комстроки, который бы отключал использование некоторых не нужных в пакетном режиме фич.
Хотя бы так.
Тогда у каждого плага должен быть этот параметр (1 или 0), а при вызове комстроки при необходимости указывать, что "запускать с плагами, у которых параметр ... = 1". Или наоборот сделать при вызове комстроки по умолчанию именно этот параметр.

Offline
Posts: 2247
Joined: Tue Aug 07, 2007 2:03 pm
Location: Vinnitsa, Ukraine

Post by FeyFre »

При наличии ключа /batch(или какой там договорено), при запуске плагинов кормить им в параметр dwSupport флаг типа PDS_BATCH, и функция будет знать что ей нечего делать. Только по факту, такой флаг пойдет исключительно функциям с поддержкой автозагрузки. Либо наоборот, функции плагов на PDS_GETSUPPORT будут отвечать PDS_NOBATCH (мол мне в пакетном режиме делать нечего).
Post Reply