Страница 2 из 9

Добавлено: Вс июн 12, 2011 16:25
ApceH
Flasher
Да... В этом духе я рассуждал-рассуждал и расплавились мозги, потому что "такое-то значение" может быть не только в ini, но и в реестре и в xml... Да и наличие файлов может потребоваться проверять...
Вот и приходится ооочень серьёзно думать, чтобы решение (синтаксис) был действительно универсальным, последовательным.

P.S. Сразу хочу предупредить, что у меня не будет времени сверхбыстро всё добавлять и реализовывать. Мне до таких феноменов, как, например, Dec, MVV, очень далеко (им респект). Но стараться буду, обещаю.

Добавлено: Вс июн 12, 2011 16:28
Flasher
ApceH
Да, универсальное не помешает. Для ini пока более актуально. В xml надо, но куда реже. С реестром я могу и на vbs справиться без проблем.
Flasher писал(а):Но стараться буду, обещаю.
Это радует. :)
А вообще сама задача давненько в воздухе витала. Поэтому поклон за попытки реализовать идею. Если помимо ифов будет ещё приклеен аналог run, то вообще можно будет без скриптов во многих случаях обходиться. :)

Добавлено: Вс июн 12, 2011 16:37
ApceH
Flasher
Реестр это та же ini с точки зрения синтаксиса. Даже проще, потому что единый корень. Так что в 0.3 будет.

Кстати, предваряя запросы по действиям с ini, приведу остальные придуманные, но ещё не реализованные функции:
5.1.2) Шаблоны секций
Имя секции должно совпадать с таковой в целевом ini-файле. При этом регистр букв не учитывается.
Вместо имени секции могут присутствовать некоторые спец. символы:
5.1.2.1) [i<буква_действия>|<ini-файл>|?]
Секция не известна. Следует найти ПЕРВОЕ вхождение указанных ниже ключей и применить указанное действие.
5.1.2.2) [i<буква_действия>|<ini-файл>|*]
Секция не известна. Следует найти ВСЕ вхождения указанных ниже ключей и применить указанное действие.

5.2.3) x
Взаимная перезапись (обмен). Секция в целевом файле и секция в пресете целиком меняются местами.
5.2.5) e
Удаление. Из целевого ini-файла удаляются ключи, присутствующие в пресете, причем если значение в пресете отсутствует, то ключ удаляется безусловно, а если присутствует — только если имеющееся значение совпадает со значением в пресете.
Добавлено спустя 4 минуты:
Flasher писал(а):Если помимо ифов будет ещё приклеен аналог run, то вообще можно будет без скриптов во многих случаях обходиться. :)
Уже есть!

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

[pee|%WINDIR%\system32\calc.exe]
И параметры можно. Правда вот и обнаружилась одна потребность: если просто написать [pee|calc.exe], то он будет искать через DefaultDirectory и т.д.... Надо как-то что-ли уточнять, что это ShellExecute типа... Сделаю.

Добавлено: Вс июн 12, 2011 16:48
Flasher
ApceH писал(а):Уже есть!
Отлично. А строковые параметры поддерживаются?

Добавлено спустя 8 минут:
ApceH писал(а):И параметры можно.
Вот, теперь вижу.
А ещё надо бы выжидалочку выполнения (например, полного закрытия).

Новая версия

Добавлено: Пн июл 11, 2011 14:23
ApceH
Обновил немного прогу. Правда на порядок больше времени отвёл не программированию, а составлению спецификации. Поэтому уже могу выложить её черновик.

Всё тут: сайт, исполняемый файл с примерами, черновик спецификации

Из важного: изменено поведение секции [pek| и [per|. В прошлой версии происходило насильное завершение через Terminate, а значит настройки ТС не сохранялись.
Теперь секции таковы:
[pet| — насильное завершение (Terminate)
[peq| — корректное завершение (WM_QUIT)
[per| — перезапуск через корректное завершение (q+e)
[pee| — запуск программы

Остальное относится к интерфейсу. Теперь показывается прогресс применения пресета (с минилогом). Улучшена работа дерева и мыши на нём. В дереве добавлено контекстное меню с нужными командами, облегчающими ориентирование в этой куче конфигов и пресетов. Ну и по мелочи.

Вообщем интерфейс меня теперь практически устраивает, а значит после выпуска kIT PPP 11.7 с головой уйду в реализацию самого обработчика пресетов. Я выложил черновик спецификации полностью, так что вы можете прикинуть, что я собираюсь сделать и как. Естественно, буду рад услышать пожелания, рекомендации и конструктивную критику.

Добавлено: Пн июл 11, 2011 17:10
Flasher
ApceH
Даа, мануал так мануал. "Без пол-литра" не разберёшься. :) Чувствуется, что времени потрачено немало. Оглавление с гиперссылками добавить не помешает. А пустоши обязательно оставлять? Может, всё-таки заполнять? Некоторые страницы вообще целиком пустые.
ApceH писал(а):с головой уйду в реализацию самого обработчика пресетов
Т.е. пока то, что там написано - это только в теории? Алгоритмические функции, каркасы, псевдонимы, авторезервирование - этого ничего нет пока?

Добавлено: Пн июл 11, 2011 18:58
ApceH
Flasher
Ой, забыл галку поставить при создании PDF. Перезалил.
Да, это по большей части теория пока, и многое ещё пишется, и многое наверняка в итоге сделаю не совсем так. Это только черновик. В процессе его написания всё больше убеждался, какой титанический труд майкрософтовцы совершили при составлении спецификации .NET...
Что уже точно реализовано, отмечено в файле History.txt.
Я потому и выложил, что одна голова хорошо, а взгляд со стороны ещё как не помешает...

Добавлено: Пн июл 11, 2011 19:10
Flasher
ApceH
Понял. Я, конечно, с удовольстием поучаствую (т.к. продукт поистине заслуживает внимания), но пока не очень ясно, как это будет реально работать. Времени на изучение спецификации тоже нужно потратить прилично. Синтаксис местами понятен, но с примерами было бы в разы проще разобраться.
ApceH писал(а):Перезалил.
В отношении пустот - по-старому.

Добавлено: Пн июл 11, 2011 23:06
ApceH
Flasher писал(а):В отношении пустот - по-старому.
Вы уже придираетесь ;) Перезалил.
Примеры по ходу дела будут добавляться. Хотя сразу говорю, что в данной ситуации нормальные примеры приводить затруднительно, потому что программа в итоге будет абсолютно универсальной. И даже если просто вставить пример к каждой конструкции, понять будет сложно, так как обычно при применении затрагиваются не один и не два файла... Ну как я дам пример секции [im|...? Дать исходный ini, up-файл и потом результирующий ini? По-моему, проще будет понять без примера))))))

Добавлено: Пн июл 11, 2011 23:26
Flasher
ApceH
Да я не придираюсь, просто думал, что там этот момент исправлен.
Примеры давать необязательно к каждой конструкции. Можно объединить в несколько конструкций ряд примеров, в которых, естественно, должны быть комментарии. Как такая мысль?

Новый билд: 0.2.7.39

Добавлено: Чт июл 14, 2011 02:59
ApceH
Исправил несколько ошибок, серьёзных и не очень.
Неправильно отрабатывались пункты 1.2.1.2 и 4.1.2 — не работал ключ DefaultFile в конфиге категории.
Алгоритм обработки секций [peq и [per был доработан. Теперь менее вероятно запустить программу, не закрыв предыдущую копию. Хотя сделано всё ещё не совсем правильно, работаю над этим. Надо же учитывать, что процесс может и отказаться закрываться... Ну с TC вроде нормально.
Делая пресеты для новой фичи в kIT PPP, столкнулся с новыми задачками и реализовал их.
Если имя up-файла начинается с точки, то он не покажется в дереве. Но в пакетном режиме, конечно, применится.
Потом пришлось забежать далеко вперёд и реализовать "выжидалочку" :) Не процесса, а просто функция Sleep. Синтаксис:

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

[#wait|1000]
Число — время в миллисекундах.
Обратите внимание на категорию TC-GlobalModes. Там как раз применены нововведения.

Добавлено: Чт июл 28, 2011 16:56
ask-rus
Информация:
ApceH писал(а):Переименовывать и комментировать/раскомментировать произвольные секции и ключи будет способен kIT UP следующей версии. В середине августа будет готово.

Добавлено: Чт июл 28, 2011 22:13
ApceH
ask-rus
Вы меня контролируете или ловите на слове?)))
Нет смысла. В опубликованном вместе с 0.2.7 черновике спецификации намерение реализовать комментирование и переименование уже было заявлено в пунктах 5.2.7-10.
Всё заявленное рано или поздно будет реализовано. Конкретно это, да, в августе.
Лучше бы прокомментировали и посоветовали что-то по программе или спецификации.

Добавлено: Пт июл 29, 2011 15:59
ask-rus
ApceH писал(а):Вы меня контролируете или ловите на слове?
Ни то, ни другое.
ApceH писал(а):Нет смысла. В опубликованном вместе с 0.2.7 черновике спецификации намерение реализовать комментирование и переименование уже было заявлено в пунктах 5.2.7-10.
А если кто-то не скачивал утилиту, есть смысл?
ApceH писал(а):Лучше бы прокомментировали и посоветовали что-то по программе или спецификации.
И комментарии, и советы будут - всё будет.

Обновление черновика спецификации

Добавлено: Сб авг 06, 2011 21:54
ApceH
Ох, что за гик я?))) Пару часов в день купаюсь в море, остальное время пишу спецификацию))))) Отпуск для того, чтобы вплотную заняться работой)))

Очень значительно обновил спецификацию. Замораживаю пока, и начинаю реализовывать намеченное. Кое-какие пункты пришлось сдвинуть, поэтому history.txt в последней версии kIT UP не совсем верный, но это временно ;)
Написал многие вещи более простым языком. Если прочитать подряд, должно быть понятно, что я задумал в целом.
Полностью пересмотрел синтаксис секций работы с файлами ([f...). Похоже так и оставлю окончательно. Реализую сразу после окончания работ над ini и реестром. То есть в версии 0.4 (не позднее октября).
Почти везде вставил простенькие примеры, а то многие сильно просили)))