Страница 55 из 243

Добавлено: Сб фев 02, 2013 22:32
Flasher
Loopback писал(а):Больше таких ошибок делать не буду.
А в чём ошибка, если функции повсеместно используются (и явно не дураками делались) ?

Добавлено: Сб фев 02, 2013 23:24
Loopback
Flasher писал(а):А в чём ошибка, если функции повсеместно используются (и явно не дураками делались) ?
Я вроде против функций ничего не имею, скорее наоборот. Ошибка же в попытке подогнать всё усложняющиеся вещи под изначально неподходящий для этого синтаксис.

Добавлено: Вс фев 03, 2013 00:15
Flasher
Loopback
Вероятность использования одной и той же строковой переменной в разных местах скрипта сводится к минимуму, поэтому само создание отдельных переменных практически не востребовано.
Синтаксисы команд и функций нигде тут друг другу противоречить не будут, если как следует всё делать.
Боюсь, при текущем подходе конфиг распухнет до неузнаваемости, и автозагрузка значительно замедлится.
И большое пожелание добавить поддержку арифметических операторов (особенно конкатенации) в ShellExec, IniWrite, ProcessExecGetOutput, иначе тут появление ряда новых команд окажется бессмысленным. Не всё же через Set получать.

Добавлено: Вс фев 03, 2013 02:25
Loopback
Flasher
Если строчные функции в том виде, в котором они есть не нужны и опасны для размера конфига - могу убрать. Уже жалею, что вообще добавил. Но в другом виде их сейчас не будет.

Вычислений на месте тоже не будет. Отдельная конкатенация в Autorun вообще не нужна, переменные разворачиваются в тексте.

Добавлено: Вс фев 03, 2013 03:24
Flasher
Loopback писал(а):Отдельная конкатенация в Autorun вообще не нужна, переменные разворачиваются в тексте.
Поясни на примере. Мне нужно в ряде случаев в одну строку сливать текст и переменные. Как формируется такая запись? Так же, как и с переменными среды? И как с кавычками быть в таких записях?

Добавлено: Вс фев 03, 2013 09:52
MVV
По-моему, с такими широкими запросами уже надо отдельный скрипт писать и выполнять его через ShellExec... Функции, арифметика...
Flasher писал(а):
MVV писал(а):Не пойму, зачем было проводить допобработку возвращаемой системой строки языка...
Вообще-то было запрошено дважды и подтверждено. Верхний регистр не нужен.
Вообще, конечно, "мне так хочется" - не ответ. А мне захочется иначе, всем сразу не угодишь. Проводить необязательную дополнительную обработку, тем более при наличии добавленной команды снижения регистра - избыточность.

Добавлено: Вс фев 03, 2013 12:18
KopBuH
MVV писал(а):Проводить необязательную дополнительную обработку, тем более при наличии добавленной команды снижения регистра - избыточность.
поддерживаю. пока сделал так:

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

StrUpper OSLANG %SYSINFO_USERLANG%
SetEnv /EV COMMANDER_OSLANG %OSLANG%
но все же верхний регистр по умолчанию - это правильно.

Добавлено: Вс фев 03, 2013 12:32
Flasher
MVV писал(а):По-моему, с такими широкими запросами уже надо отдельный скрипт писать и выполнять его через ShellExec... Функции, арифметика.
У тебя в TCFS2 всё это есть без всяких скриптов. Или забыл?
MVV писал(а):Вообще, конечно, "мне так хочется" - не ответ.
А какой тебе нужен ответ? У тебя аргумента в пользу верхнего регистра, кроме того, что так выдаёт функция по умолчанию, нет. А у меня есть и автор, видимо, это понимает, раз согласился.

И вообще, когда я это дважды запрашивал, никто против не был. Поэтому нечего зря теребить автора, когда это уже случилось.
MVV писал(а):Проводить необязательную дополнительную обработку, тем более при наличии добавленной команды снижения регистра - избыточность.
Эта обработка - несколько символов в коде, который ещё и компилируется. За какие ресурсы ты переживаешь? Самому-то не смешно рассуждать на эту тему?
А эту команду можно уже убирать вместе с остальными. Как видишь, зря добавлялись они. Лишние нагромождение в конфиге с такими командами - вот это избыточность.

Добавлено: Вс фев 03, 2013 14:16
KopBuH
Flasher писал(а): А эту команду можно уже убирать вместе с остальными. Как видишь, зря добавлялись они. Лишние нагромождение в конфиге с такими командами - вот это избыточность.
не хочешь - не громозди. например мне они требуются.

Добавлено: Вс фев 03, 2013 14:47
Flasher
KopBuH
Они появились исходя из моего раннего предложения. Но было оно в ином виде. Поэтому Loopback и пишет, что жалеет о добавке.

Добавлено: Вс фев 03, 2013 21:03
Loopback
Flasher писал(а):Поясни на примере. Мне нужно в ряде случаев в одну строку сливать текст и переменные. Как формируется такая запись? Так же, как и с переменными среды? И как с кавычками быть в таких записях?
Ну так какие проблемы? Вот пример, пусть и несколько надуманный:

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

Set NUMBER 1
SetEnv VAR "%COMMANDER_DRIVE%\Soft\%SYSINFO_OSARCH%\MyFile-'%NUMBER%'.ini"
В зависимости от переменных окружения, VAR будет, например: c:\Soft\32\MyFile-'1'.ini

Такую же конструкцию можно использовать в любой команде, где разворачиваются переменные. Причем это удобнее конкатенации.
Flasher писал(а):Они появились исходя из моего раннего предложения. Но было оно в ином виде. Поэтому Loopback и пишет, что жалеет о добавке.
Жалею только потому, что это вызвало новый виток дискуссий в стиле "хочу так, а не иначе, поскольку иначе неправильно, будет работать медленно, будет громоздко, смотрится ваще некрасиво, смысла в переменных нет, смысла в новых функциях нет и т.д. и т.п." И опять приходится что-то доказывать.

Думаешь, что я не понимаю, чем функции удобнее того, как сделано в Autorun? Понимаю, но также понимаю и то, почему сделано так, а не иначе, и во что выльются попытки дальнейшего усложнения синтаксиса с существующим парсером. Это бессмысленная трата времени и нагромождение кучи кода, поскольку имеющийся парсер принципиально не может решить задачу работы с ними. А ради чего? Ради нескольких функций, которые будут использоваться в лучшем случае пару раз на скрипт?

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

Добавлено: Вс фев 03, 2013 21:18
MVV
Flasher писал(а):У тебя в TCFS2 всё это есть без всяких скриптов. Или забыл?
У TCFS2 несколько иной функционал. Мне, например, хочется, чтобы Autorun оставался компактным и легким, все тяжелые действия можно делать из запускаемых им программ/модулей.
Flasher писал(а):А у меня есть и автор, видимо, это понимает, раз согласился.
И каковы же твои аргументы в пользу принудительного преобразования к нижнему регистру?

Добавлено: Вс фев 03, 2013 21:49
Flasher
Loopback писал(а):Такую же конструкцию можно использовать в любой команде, где разворачиваются переменные.
Так, хорошо, а если пробелы между переменными и текстом есть?
Loopback писал(а):смотрится ваще некрасиво, смысла в переменных нет, смысла в новых функциях нет
Этого я не писал. Тем более про функции.
Loopback писал(а):поскольку имеющийся парсер принципиально не может решить задачу работы с ними
В этом никто не сомневался. Речь только может идти про новый.
Loopback писал(а):Ради нескольких функций, которые будут использоваться в лучшем случае пару раз на скрипт?
У меня в голове держатся мысли, где вовсе не пару. Скажем, есть файлы, где регистр в именах гуляет и их надо прописывать в точном соответствии. Представь, сколько будет уходить строк на всё это.
MVV писал(а):Мне, например, хочется, чтобы Autorun оставался компактным и легким
TCFS2 при наличии всех этих приблуд в несколько раз легче Autorun. И каков вывод?
MVV писал(а): все тяжелые действия можно делать из запускаемых им программ/модулей.
Вот именно - тяжёлые.
MVV писал(а):И каковы же твои аргументы в пользу принудительного преобразования к нижнему регистру?
Отличные от твоих, видимо. Ты же оспариваешь, тебе и начинать писать про верхний. :wink:

Добавлено: Вс фев 03, 2013 22:56
MVV
TCFS2 при наличии всех этих приблуд в несколько раз легче Autorun. И каков вывод?
Вывод - кропотливое написание кода на C++ с голым API позволяет получить более компактный модуль. :D
Отличные от твоих, видимо. Ты же оспариваешь, тебе и начинать писать про верхний.
Мой аргумент был в избыточности нестандартного преобразования, которое нужно не всем, а кому нужно, вызовет процедуру приведения к нижнему регистру. Твоих аргументов кроме "я хочу" пока не было.

Добавлено: Вс фев 03, 2013 23:01
Flasher
MVV писал(а):Вывод - C++ с голым API позволяет написать более компактный модуль.
Вывод - компактность кода ещё не есть лёгкость программы/модуля.
MVV писал(а):которое нужно не всем
Могу сказать то же самое - верхний регистр тоже нужен не всем. Эта такой же "аргумент", как и псевдоизбыточность.
Агрументом тут может быть лишь непосредственно личная выгода или польза от использования исходного вида.