View previous topic :: View next topic |
Author |
Message |
MVV

Joined: 15 Oct 2009 Posts: 4815 Location: Ростов-Дон
|
|
Back to top |
|
 |
Flasher

Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Sun Feb 03, 2013 23:17 Post subject: |
|
|
В компилированном виде это займёт ещё меньше, чем в текстовом файле и отработает быстрее. _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
 |
Loopback
Joined: 07 Sep 2009 Posts: 1554
|
(Separately) Posted: Mon Feb 04, 2013 00:27 Post subject: |
|
|
Flasher wrote: | Так, хорошо, а если пробелы между переменными и текстом есть? |
Добавляй, что мешает-то?
Flasher wrote: | Этого я не писал. Тем более про функции. |
http://forum.wincmd.ru/viewpost.php?p=98902
Не про функции, про команды. Сути-то не меняет.
Flasher wrote: | В этом никто не сомневался. Речь только может идти про новый. |
Угу, т.е. я сейчас начну переписывать с нуля парсер, только чтобы сделать красиво строчные функции? Здорово придумано
Нет, мне сейчас как-то больше хочется наконец релиз выпустить.
ЗЫ К слову, плагины к Autorun сейчас написаны на С++. Было интересно вспомнить, да и API надо было портировать. И что, кроме размера, заметил кто какие преимущества?  |
|
Back to top |
|
 |
Flasher

Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Mon Feb 04, 2013 00:41 Post subject: |
|
|
Loopback wrote: | Добавляй, что мешает-то? | Пробел выполняет фунцию сепаратора в синтаксисе. Им отделяются ключи, имена переменных, имена секций и т..д. Синтаксис глаголит последовательность расположения данных. Плагин разве не споткнётся на любом подобном пробеле? Или там кавычки решают?
Loopback wrote: | Не про функции, про команды. Сути-то не меняет | Меняет. Я написал про некоторые новые команды, а ты про неизвестно какие переменные.
Loopback wrote: | Угу, т.е. я сейчас начну переписывать с нуля парсер | Под новым понимался дополнительный, а не изменённый существующий.
Loopback wrote: | И что, кроме размера, заметил кто какие преимущества? | Чего перед чем? _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
 |
Loopback
Joined: 07 Sep 2009 Posts: 1554
|
(Separately) Posted: Mon Feb 04, 2013 10:23 Post subject: |
|
|
Flasher wrote: | Или там кавычки решают? |
Решают. Можно ведь и попробовать, не?
Flasher wrote: | а ты про неизвестно какие переменные. |
Flasher wrote: | поэтому само создание отдельных переменных практически не востребовано. |
Flasher wrote: | Под новым понимался дополнительный, а не изменённый существующий. |
Т.е. под каждый вид функционала свой парсер. Нет, это не вариант. Всё должно обрабатываться единообразно. |
|
Back to top |
|
 |
MVV

Joined: 15 Oct 2009 Posts: 4815 Location: Ростов-Дон
|
(Separately) Posted: Mon Feb 04, 2013 11:41 Post subject: |
|
|
Что ж там за парсер, что сложно добавить поддержку параметров функций. Я у себя проблему решал достаточно просто: если вижу скобку, ищу конец выражения в скобках с учетом типа и уровней вложенности, затем просто передаю всю подстроку во вложенный вызов как параметр, а дальше уже функция сама парсит его.
На худой конец, вызов функций можно организовать как макрозамену: перед тем как вызывать процедуру, выполняешь предобработку строки параметров, подставляя макросы и раскрывая переменные окружения, например, StrUpper(бла-бла) заменяешь на БЛА-БЛА. А уже потом передаёшь результат основной процедуре:
Code: | Исходная строка:
SetEnv /EV COMMANDER_OSLANG StrUpper(%SYSINFO_USERLANG%)
После предобработки:
SetEnv /EV COMMANDER_OSLANG RUS |
При этом парсер можно оставить как есть, просто добавить препроцессор. Кстати, его можно даже в виде плагина сделать, вызывать определенную функцию плагина и передавать ей строку, а она пусть возвращает обработанную строку, которую затем плагин будет парсить как обычно. От плагина всего требуется две экспортируемые функции: функция предобработки и функция освобождения памяти.
Code: | const char* __stdcall AutorunPreprocess(const char* InputLine);
void __stdcall AutorunFree(void* Pointer); |
Т.е., читаешь очередную строку конфига, раскрываешь переменные окружения и передаёшь строку функции AutorunPreprocess, а дальше парсишь уже то, что она вернёт. По идее, в таком препроцессоре можно реализовать преобразование регистра, конкатенацию строк, какую-нибудь арифметику. Так можно даже разные языки внедрить - лишь бы AutorunPreprocess возвращала то, что ожидает парсер самого плагина.
Loopback wrote: | ЗЫ К слову, плагины к Autorun сейчас написаны на С++. Было интересно вспомнить, да и API надо было портировать. И что, кроме размера, заметил кто какие преимущества?  |
Обновлял сейчас плаг, начал ругаться на MoveOptionsButton, заметил, что Autorun_MoveButton.dll конкретно похудел - круто.  _________________ TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel… |
|
Back to top |
|
 |
Loopback
Joined: 07 Sep 2009 Posts: 1554
|
(Separately) Posted: Mon Feb 04, 2013 14:23 Post subject: |
|
|
MVV wrote: | Что ж там за парсер, что сложно добавить поддержку параметров функций. Я у себя проблему решал достаточно просто: если вижу скобку, ищу конец выражения в скобках с учетом типа и уровней вложенности, затем просто передаю всю подстроку во вложенный вызов как параметр, а дальше уже функция сама парсит его. |
Я же не говорю, что это принципиально невозможно. Но в любом случае муторно. Ну если только ограничить использованием в качестве параметра функции только переменных, т.е. так можно StrUpper(%VAR%), а так нет: StrUpper("blabla%VAR%").
В любом случае, до релиза - никакого изменения синтаксиса делать не буду. Иначе плагин так и останется в вечной бете. |
|
Back to top |
|
 |
Flasher

Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Mon Feb 04, 2013 16:12 Post subject: |
|
|
Loopback wrote: | Можно ведь и попробовать, не? | Можно, попробую. В Ридми будет?
Loopback wrote: | В любом случае, до релиза - никакого изменения синтаксиса делать не буду. | Никто не настаивает. Релизь что есть. А позже добавишь функции. _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
 |
MVV

Joined: 15 Oct 2009 Posts: 4815 Location: Ростов-Дон
|
|
Back to top |
|
 |
KopBuH

Joined: 02 Jul 2010 Posts: 127 Location: Tashkent, Uzbekistan
|
(Separately) Posted: Sat Feb 09, 2013 12:06 Post subject: |
|
|
насчет %SYSINFO_USERLANG%
насколько я понял, английская Windows 7 домашняя, руссифицированая принудительно русским MUI отображается как "ENU"?.
то есть даже если язык и интерфейс пользователя русский, то все равно получаем язык оригинальной системы, так?. (я понимаю, что значение берется из ключа sLanguage, но это получается уже не USERLANG, а скорее OSLANG...)
код из конфига:
Code: | # Проверка языка системы
StrUpper OSLANG %SYSINFO_USERLANG%
If %OSLANG% = ENU Then
SetEnv /EV COMMANDER_OSLANG Eng
Else
SetEnv /EV COMMANDER_OSLANG %OSLANG%
EndIf
|
|
|
Back to top |
|
 |
MVV

Joined: 15 Oct 2009 Posts: 4815 Location: Ростов-Дон
|
|
Back to top |
|
 |
KopBuH

Joined: 02 Jul 2010 Posts: 127 Location: Tashkent, Uzbekistan
|
(Separately) Posted: Sat Feb 09, 2013 15:20 Post subject: |
|
|
жаль, но я уже отдал нотебук ) (он был клиентский).
а на моей, старой доброй XP SP3 - все 419.
но я отпишусь, если будет еще такая система (W7 Home Basic EN).
там я в систему MUI установил принудительно, через Vistalizator.
да, я заметил что в кусте реестра той системы (HKEY_CURRENT_USER\Control Panel\International) sLanguage был ENU.
а вот какой был "Locale" - не глянул
Добавлено спустя 1 час 2 минуты:
сейчас встретился с еще одной системой:
здесь все наоборот:
Win7 Home Basic, язык интерфейса - чисто английский.
но плагин детектит как Rus.
настройки системы:
http://savepic.org/2756825.jpg
http://savepic.org/2817240.jpg
текущее расположение - Россия.
Язык для не юникодных программ - русский.
Locale: 0419
"Эта штука" выдала это:
http://savepic.org/2773209.jpg |
|
Back to top |
|
 |
MVV

Joined: 15 Oct 2009 Posts: 4815 Location: Ростов-Дон
|
|
Back to top |
|
 |
Loopback
Joined: 07 Sep 2009 Posts: 1554
|
(Separately) Posted: Sun Feb 10, 2013 12:57 Post subject: |
|
|
Еще одна бета, четырнадцатая.
Скачать
Из изменений - только новый формат справки. |
|
Back to top |
|
 |
Flasher

Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Wed Feb 13, 2013 00:12 Post subject: |
|
|
Loopback
Файл wdx отличается от предыдущего.
Я думал, что справка будет пообширней в плане разъяснений. Ну, да ладно.
Добавь, пож-та, данные по процессору (производитель, ширина шины данных и т.д.). _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
 |
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
Powered by phpBB © 2001, 2005 phpBB Group
|