kIT Universal Presets
Модераторы: Avada, CaptainFlint, Nik, d-view, Моторокер
Flasher
Да... В этом духе я рассуждал-рассуждал и расплавились мозги, потому что "такое-то значение" может быть не только в ini, но и в реестре и в xml... Да и наличие файлов может потребоваться проверять...
Вот и приходится ооочень серьёзно думать, чтобы решение (синтаксис) был действительно универсальным, последовательным.
P.S. Сразу хочу предупредить, что у меня не будет времени сверхбыстро всё добавлять и реализовывать. Мне до таких феноменов, как, например, Dec, MVV, очень далеко (им респект). Но стараться буду, обещаю.
Да... В этом духе я рассуждал-рассуждал и расплавились мозги, потому что "такое-то значение" может быть не только в ini, но и в реестре и в xml... Да и наличие файлов может потребоваться проверять...
Вот и приходится ооочень серьёзно думать, чтобы решение (синтаксис) был действительно универсальным, последовательным.
P.S. Сразу хочу предупредить, что у меня не будет времени сверхбыстро всё добавлять и реализовывать. Мне до таких феноменов, как, например, Dec, MVV, очень далеко (им респект). Но стараться буду, обещаю.
Последний раз редактировалось ApceH Вс июн 12, 2011 16:33, всего редактировалось 2 раза.
ApceH
Да, универсальное не помешает. Для ini пока более актуально. В xml надо, но куда реже. С реестром я могу и на vbs справиться без проблем.
А вообще сама задача давненько в воздухе витала. Поэтому поклон за попытки реализовать идею. Если помимо ифов будет ещё приклеен аналог run, то вообще можно будет без скриптов во многих случаях обходиться.
Да, универсальное не помешает. Для ini пока более актуально. В xml надо, но куда реже. С реестром я могу и на vbs справиться без проблем.
Это радует.Flasher писал(а):Но стараться буду, обещаю.
А вообще сама задача давненько в воздухе витала. Поэтому поклон за попытки реализовать идею. Если помимо ифов будет ещё приклеен аналог run, то вообще можно будет без скриптов во многих случаях обходиться.
Последний раз редактировалось Flasher Вс июн 12, 2011 16:34, всего редактировалось 1 раз.
Flasher
Реестр это та же ini с точки зрения синтаксиса. Даже проще, потому что единый корень. Так что в 0.3 будет.
Кстати, предваряя запросы по действиям с ini, приведу остальные придуманные, но ещё не реализованные функции:
И параметры можно. Правда вот и обнаружилась одна потребность: если просто написать [pee|calc.exe], то он будет искать через DefaultDirectory и т.д.... Надо как-то что-ли уточнять, что это ShellExecute типа... Сделаю.
Реестр это та же ini с точки зрения синтаксиса. Даже проще, потому что единый корень. Так что в 0.3 будет.
Кстати, предваряя запросы по действиям с ini, приведу остальные придуманные, но ещё не реализованные функции:
Добавлено спустя 4 минуты: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-файла удаляются ключи, присутствующие в пресете, причем если значение в пресете отсутствует, то ключ удаляется безусловно, а если присутствует — только если имеющееся значение совпадает со значением в пресете.
Уже есть!Flasher писал(а):Если помимо ифов будет ещё приклеен аналог run, то вообще можно будет без скриптов во многих случаях обходиться.
Код: Выделить всё
[pee|%WINDIR%\system32\calc.exe]
Последний раз редактировалось ApceH Вс июн 12, 2011 16:41, всего редактировалось 1 раз.
Новая версия
Обновил немного прогу. Правда на порядок больше времени отвёл не программированию, а составлению спецификации. Поэтому уже могу выложить её черновик.
Всё тут: сайт, исполняемый файл с примерами, черновик спецификации
Из важного: изменено поведение секции [pek| и [per|. В прошлой версии происходило насильное завершение через Terminate, а значит настройки ТС не сохранялись.
Теперь секции таковы:
[pet| — насильное завершение (Terminate)
[peq| — корректное завершение (WM_QUIT)
[per| — перезапуск через корректное завершение (q+e)
[pee| — запуск программы
Остальное относится к интерфейсу. Теперь показывается прогресс применения пресета (с минилогом). Улучшена работа дерева и мыши на нём. В дереве добавлено контекстное меню с нужными командами, облегчающими ориентирование в этой куче конфигов и пресетов. Ну и по мелочи.
Вообщем интерфейс меня теперь практически устраивает, а значит после выпуска kIT PPP 11.7 с головой уйду в реализацию самого обработчика пресетов. Я выложил черновик спецификации полностью, так что вы можете прикинуть, что я собираюсь сделать и как. Естественно, буду рад услышать пожелания, рекомендации и конструктивную критику.
Всё тут: сайт, исполняемый файл с примерами, черновик спецификации
Из важного: изменено поведение секции [pek| и [per|. В прошлой версии происходило насильное завершение через Terminate, а значит настройки ТС не сохранялись.
Теперь секции таковы:
[pet| — насильное завершение (Terminate)
[peq| — корректное завершение (WM_QUIT)
[per| — перезапуск через корректное завершение (q+e)
[pee| — запуск программы
Остальное относится к интерфейсу. Теперь показывается прогресс применения пресета (с минилогом). Улучшена работа дерева и мыши на нём. В дереве добавлено контекстное меню с нужными командами, облегчающими ориентирование в этой куче конфигов и пресетов. Ну и по мелочи.
Вообщем интерфейс меня теперь практически устраивает, а значит после выпуска kIT PPP 11.7 с головой уйду в реализацию самого обработчика пресетов. Я выложил черновик спецификации полностью, так что вы можете прикинуть, что я собираюсь сделать и как. Естественно, буду рад услышать пожелания, рекомендации и конструктивную критику.
ApceH
Даа, мануал так мануал. "Без пол-литра" не разберёшься.
Чувствуется, что времени потрачено немало. Оглавление с гиперссылками добавить не помешает. А пустоши обязательно оставлять? Может, всё-таки заполнять? Некоторые страницы вообще целиком пустые.
Даа, мануал так мануал. "Без пол-литра" не разберёшься.
Т.е. пока то, что там написано - это только в теории? Алгоритмические функции, каркасы, псевдонимы, авторезервирование - этого ничего нет пока?ApceH писал(а):с головой уйду в реализацию самого обработчика пресетов
Flasher
Ой, забыл галку поставить при создании PDF. Перезалил.
Да, это по большей части теория пока, и многое ещё пишется, и многое наверняка в итоге сделаю не совсем так. Это только черновик. В процессе его написания всё больше убеждался, какой титанический труд майкрософтовцы совершили при составлении спецификации .NET...
Что уже точно реализовано, отмечено в файле History.txt.
Я потому и выложил, что одна голова хорошо, а взгляд со стороны ещё как не помешает...
Ой, забыл галку поставить при создании PDF. Перезалил.
Да, это по большей части теория пока, и многое ещё пишется, и многое наверняка в итоге сделаю не совсем так. Это только черновик. В процессе его написания всё больше убеждался, какой титанический труд майкрософтовцы совершили при составлении спецификации .NET...
Что уже точно реализовано, отмечено в файле History.txt.
Я потому и выложил, что одна голова хорошо, а взгляд со стороны ещё как не помешает...
ApceH
Понял. Я, конечно, с удовольстием поучаствую (т.к. продукт поистине заслуживает внимания), но пока не очень ясно, как это будет реально работать. Времени на изучение спецификации тоже нужно потратить прилично. Синтаксис местами понятен, но с примерами было бы в разы проще разобраться.
Понял. Я, конечно, с удовольстием поучаствую (т.к. продукт поистине заслуживает внимания), но пока не очень ясно, как это будет реально работать. Времени на изучение спецификации тоже нужно потратить прилично. Синтаксис местами понятен, но с примерами было бы в разы проще разобраться.
В отношении пустот - по-старому.ApceH писал(а):Перезалил.
Вы уже придираетесьFlasher писал(а):В отношении пустот - по-старому.
Примеры по ходу дела будут добавляться. Хотя сразу говорю, что в данной ситуации нормальные примеры приводить затруднительно, потому что программа в итоге будет абсолютно универсальной. И даже если просто вставить пример к каждой конструкции, понять будет сложно, так как обычно при применении затрагиваются не один и не два файла... Ну как я дам пример секции [im|...? Дать исходный ini, up-файл и потом результирующий ini? По-моему, проще будет понять без примера))))))
Новый билд: 0.2.7.39
Исправил несколько ошибок, серьёзных и не очень.
Неправильно отрабатывались пункты 1.2.1.2 и 4.1.2 — не работал ключ DefaultFile в конфиге категории.
Алгоритм обработки секций [peq и [per был доработан. Теперь менее вероятно запустить программу, не закрыв предыдущую копию. Хотя сделано всё ещё не совсем правильно, работаю над этим. Надо же учитывать, что процесс может и отказаться закрываться... Ну с TC вроде нормально.
Делая пресеты для новой фичи в kIT PPP, столкнулся с новыми задачками и реализовал их.
Если имя up-файла начинается с точки, то он не покажется в дереве. Но в пакетном режиме, конечно, применится.
Потом пришлось забежать далеко вперёд и реализовать "выжидалочку"
Не процесса, а просто функция Sleep. Синтаксис:Число — время в миллисекундах.
Обратите внимание на категорию TC-GlobalModes. Там как раз применены нововведения.
Неправильно отрабатывались пункты 1.2.1.2 и 4.1.2 — не работал ключ DefaultFile в конфиге категории.
Алгоритм обработки секций [peq и [per был доработан. Теперь менее вероятно запустить программу, не закрыв предыдущую копию. Хотя сделано всё ещё не совсем правильно, работаю над этим. Надо же учитывать, что процесс может и отказаться закрываться... Ну с TC вроде нормально.
Делая пресеты для новой фичи в kIT PPP, столкнулся с новыми задачками и реализовал их.
Если имя up-файла начинается с точки, то он не покажется в дереве. Но в пакетном режиме, конечно, применится.
Потом пришлось забежать далеко вперёд и реализовать "выжидалочку"
Код: Выделить всё
[#wait|1000]Обратите внимание на категорию TC-GlobalModes. Там как раз применены нововведения.
Информация:
ApceH писал(а):Переименовывать и комментировать/раскомментировать произвольные секции и ключи будет способен kIT UP следующей версии. В середине августа будет готово.
«Минимализм - это кратчайший путь бесконечного стремления к идеалу»
«Не бойся, что не знаешь, - бойся, что не учишься» Китайская пословица
«Не бойся, что не знаешь, - бойся, что не учишься» Китайская пословица
ask-rus
Вы меня контролируете или ловите на слове?)))
Нет смысла. В опубликованном вместе с 0.2.7 черновике спецификации намерение реализовать комментирование и переименование уже было заявлено в пунктах 5.2.7-10.
Всё заявленное рано или поздно будет реализовано. Конкретно это, да, в августе.
Лучше бы прокомментировали и посоветовали что-то по программе или спецификации.
Вы меня контролируете или ловите на слове?)))
Нет смысла. В опубликованном вместе с 0.2.7 черновике спецификации намерение реализовать комментирование и переименование уже было заявлено в пунктах 5.2.7-10.
Всё заявленное рано или поздно будет реализовано. Конкретно это, да, в августе.
Лучше бы прокомментировали и посоветовали что-то по программе или спецификации.
Ни то, ни другое.ApceH писал(а):Вы меня контролируете или ловите на слове?
А если кто-то не скачивал утилиту, есть смысл?ApceH писал(а):Нет смысла. В опубликованном вместе с 0.2.7 черновике спецификации намерение реализовать комментирование и переименование уже было заявлено в пунктах 5.2.7-10.
И комментарии, и советы будут - всё будет.ApceH писал(а):Лучше бы прокомментировали и посоветовали что-то по программе или спецификации.
«Минимализм - это кратчайший путь бесконечного стремления к идеалу»
«Не бойся, что не знаешь, - бойся, что не учишься» Китайская пословица
«Не бойся, что не знаешь, - бойся, что не учишься» Китайская пословица
Обновление черновика спецификации
Ох, что за гик я?))) Пару часов в день купаюсь в море, остальное время пишу спецификацию))))) Отпуск для того, чтобы вплотную заняться работой)))
Очень значительно обновил спецификацию. Замораживаю пока, и начинаю реализовывать намеченное. Кое-какие пункты пришлось сдвинуть, поэтому history.txt в последней версии kIT UP не совсем верный, но это временно
Написал многие вещи более простым языком. Если прочитать подряд, должно быть понятно, что я задумал в целом.
Полностью пересмотрел синтаксис секций работы с файлами ([f...). Похоже так и оставлю окончательно. Реализую сразу после окончания работ над ini и реестром. То есть в версии 0.4 (не позднее октября).
Почти везде вставил простенькие примеры, а то многие сильно просили)))
Очень значительно обновил спецификацию. Замораживаю пока, и начинаю реализовывать намеченное. Кое-какие пункты пришлось сдвинуть, поэтому history.txt в последней версии kIT UP не совсем верный, но это временно
Написал многие вещи более простым языком. Если прочитать подряд, должно быть понятно, что я задумал в целом.
Полностью пересмотрел синтаксис секций работы с файлами ([f...). Похоже так и оставлю окончательно. Реализую сразу после окончания работ над ini и реестром. То есть в версии 0.4 (не позднее октября).
Почти везде вставил простенькие примеры, а то многие сильно просили)))
Последний раз редактировалось ApceH Вт авг 09, 2011 01:33, всего редактировалось 1 раз.