powered by simpleCommunicator - 2.0.58     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Запись в реестр
140 сообщений из 140, показаны все 6 страниц
Запись в реестр
    #40031305
Mizer73
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Храню в регистре некоторые данные.
Пытался хранить в ветке HKCU HKEY_LOCAL_MACHINE; - но там совсем плохо с возможностью записи
на некоторых машинах даёт писать в HKEY_CURRENT_USER; а на других - нет
как решить проблему доступа к записи в реестр?

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
TRegistry *reg = new TRegistry(KEY_ALL_ACCESS); //Создали обьект класса TRegistry
reg->RootKey = HKEY_CURRENT_USER;	//присваивание объекту 'reg' пути HKCU HKEY_LOCAL_MACHINE;   //
reg->OpenKey("Software\\йцукr", true);
if (reg)
{	
	reg->WriteBool("Connect", true);
	reg->WriteString("pwd", Edit3->Text);
	reg->WriteString("plz", Edit2->Text);
	reg->WriteString("srv", Edit1->Text);
}
if (reg) delete reg;
...
Рейтинг: 0 / 0
Запись в реестр
    #40031307
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вы уверены, что вам обязательно нужна возможность намусорить в реестр? Может лучше обойтись файлами ini, xml или json?
...
Рейтинг: 0 / 0
Запись в реестр
    #40031308
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mizer73как решить проблему доступа к записи в реестр?

Путём отладки найти ошибку и исправить. Подсказка: OpenKey это функция, возвращающая
значение.
http://docs.embarcadero.com/products/rad_studio/delphiAndcpp2009/HelpUpdate2/EN/html/delphivclwin32/Registry_TRegistry_OpenKey.html

HKEY_CURRENT_USER по определению доступен для записи текущему пользователю.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Запись в реестр
    #40031310
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mizer73,

И да, лучше завязать с Борландом. Возьмите православный Qt.
...
Рейтинг: 0 / 0
Запись в реестр
    #40031347
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mizer73
а на других - нет
не верю
...
Рейтинг: 0 / 0
Запись в реестр
    #40031541
Mizer73
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PetroNotC Sharp
Mizer73
а на других - нет
не верю

тем не менее - это из практики.
не поднял бы эту тему, если бы не столкнулся с этим.
Сейчас переделываю все по правилам букварей. Работает.
...
Рейтинг: 0 / 0
Запись в реестр
    #40031552
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petrav
Вы уверены, что вам обязательно нужна возможность намусорить в реестр? Может лучше обойтись файлами ini, xml или json?

Что значит намусорить? Это штатная возможность Windows архитектур. И ей надо пользоваться.
...
Рейтинг: 0 / 0
Запись в реестр
    #40031579
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonЭто штатная возможность Windows архитектур. И ей надо пользоваться.

При её создании не учли пару моментов, включая производительность. Более свежие
рекомендации по дизайну приложений обратно рекомендуют файловую систему для хранения
информации приложений.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Запись в реестр
    #40031597
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov

maytonЭто штатная возможность Windows архитектур. И ей надо пользоваться.

При её создании не учли пару моментов, включая производительность. Более свежие
рекомендации по дизайну приложений обратно рекомендуют файловую систему для хранения
информации приложений.

Значит SQLite надо юзать.
...
Рейтинг: 0 / 0
Запись в реестр
    #40031608
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov

maytonЭто штатная возможность Windows архитектур. И ей надо пользоваться.

При её создании не учли пару моментов, включая производительность. Более свежие
рекомендации по дизайну приложений обратно рекомендуют файловую систему для хранения
информации приложений.

Ну реестр не предназначен для хранения баз данных. Свойства разве что.
Вопрос с файлами нужно рассмотреть с позиции например администрирования
Windows домена с массой пользователей и настройками.

И сравнить варианты развертывания на файлах и на реестре.
...
Рейтинг: 0 / 0
Запись в реестр
    #40031612
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonИ сравнить варианты развертывания на файлах и на реестре.

Вариант с файлами победит, поскольку их-то можно разогнать на local profile и roaming
profile, а вот с реестром это не прокатит.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Запись в реестр
    #40031613
Mizer73
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov,

столкнулся с проблемой. Этот код проходит нормально

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
TRegistry* reg2 = new TRegistry(KEY_ALL_ACCESS);
		reg2->RootKey = HKEY_LOCAL_MACHINE;
		reg2->Access = KEY_WRITE;
		if (!reg2->KeyExists("Software\\Extra\\"))
		{
			reg2->CreateKey("Software\\Extra\\");
			reg2->WriteBool("Connect", false);
			reg2->WriteString("pwd", "");
			reg2->WriteString("plz", "");
			reg2->WriteString("srv", "");
		}


а в этом коде создаётся только заголовок SOFTWARE\\nsoftware\\RT\\IPBBA2\\, а дальше
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
они идут друг за другом
try
		{
			if (!reg2->KeyExists("SOFTWARE\\nsoftware\\RT\\IPBBA2\\"))
			{
				reg2->CreateKey("SOFTWARE\\nsoftware\\RT\\IPBBA2\\"); - отрабатывает, 

				reg2->WriteString("RTK", "31500000000000000000000485958303956504A000056465336524A500");
				//reg2->WriteString("", "IP");
				reg2->WriteString("*", "JZ");

			}
...
Рейтинг: 0 / 0
Запись в реестр
    #40031614
Mizer73
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Mizer73
Dimitry Sibiryakov,

столкнулся с проблемой. Этот код проходит нормально

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
TRegistry* reg2 = new TRegistry(KEY_ALL_ACCESS);
		reg2->RootKey = HKEY_LOCAL_MACHINE;
		reg2->Access = KEY_WRITE;
		if (!reg2->KeyExists("Software\\Extra\\"))
		{
			reg2->CreateKey("Software\\Extra\\");
			reg2->WriteBool("Connect", false);
			reg2->WriteString("pwd", "");
			reg2->WriteString("plz", "");
			reg2->WriteString("srv", "");
		}


а в этом коде создаётся только заголовок SOFTWARE\\nsoftware\\RT\\IPBBA2\\, а дальше
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
они идут друг за другом
try
		{
			if (!reg2->KeyExists("SOFTWARE\\nsoftware\\RT\\IPBBA2\\"))
			{
				reg2->CreateKey("SOFTWARE\\nsoftware\\RT\\IPBBA2\\"); - отрабатывает, 

				reg2->WriteString("RTK", "31500000000000000000000485958303956504A000056465336524A500");
				//reg2->WriteString("", "IP");
				reg2->WriteString("*", "JZ");

			}


на самом деле и это не отрабатывает

Код: plaintext
1.
2.
3.
4.
reg2->WriteBool("Connect", false);
reg2->WriteString("pwd", "");
reg2->WriteString("plz", "");
reg2->WriteString("srv", "");
...
Рейтинг: 0 / 0
Запись в реестр
    #40031620
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И это логично, поскольку ты так и не прислушался к советам выше. Какой смысл в продолжении?..
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Запись в реестр
    #40031633
Mizer73
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov,
попробуй объяснить
...
Рейтинг: 0 / 0
Запись в реестр
    #40031636
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mizer73, билдер это дельфи. То что Паскаль заменили на С++ оно не стало С++, болячки компоненты какие были, те и остались. Спрашивай в форуме по Дельфи, оно им понятней.
...
Рейтинг: 0 / 0
Запись в реестр
    #40031639
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TСпрашивай в форуме по Дельфи, оно им понятней.

Думаешь, там до него лучше дойдёт, что значения, возвращаемые функциями, надо проверять, а
ошибки - протоколировать?..
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Запись в реестр
    #40031646
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov

maytonИ сравнить варианты развертывания на файлах и на реестре.

Вариант с файлами победит, поскольку их-то можно разогнать на local profile и roaming
profile, а вот с реестром это не прокатит.

IMHO и AFAIK.

Хм... может быть. Еще приведу один довод в пользу реестра. Его API - прост. И действия атомарны.
С конфигурациями типа .properties, .ini e.t.c. У вас появляется новый контракт. Нужно проверять валидность
файла и иметь третье состояние - файл невалиден (был отредактирован вручную неверно) и принмать
какое-то решение. И вообще редко какой разработчик заморачивается с правильным текстовым парсером
вследствие чего конфиги могут быть долгое время сломаны но никто об этом не знает т.к. нет механизма проверки
их валидности. Тоесть пока вы не упали в явном виде - неизвестно валиден-ли конфиг.

Еще довод. На реестре проще следовать принципу Conversion Over Configuration для много-пользовательских систем.
Для текстовых конфигов у вас придется дробить крупный файл на россыпь мелких по принципу 1 ключ == 1 текстовый
файл что само по себе создает некие неудобства при ведении файлового хозяйства. Дробление может возникать от
кастомизации настроек. Чем больше юзер кастомизировал - тем больше дробления. Кроме того значения в реестре - типизированы.
Есть булевые значения. Есть числа и так далее. Это все - дополнительные уровни строгости конфигураций.

Еще довод. Реестр проще бэкапить и реплицировать. Как с БД у админа будет сфокусировано внимание на одной сущности. А не на тысяче
директорий и еще бох его знает надо их бэкапить или нет т.к. в файловой системе обычно создается некий флуд скрытых
фолдеров-конфигов которые могут быть не нужны (не релевантны) к ведению админской деятельности.
...
Рейтинг: 0 / 0
Запись в реестр
    #40031648
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonКак с БД у админа будет сфокусировано внимание на одной сущности.

Ну, админы, конечно, бывают разные, но лично у меня одним махом бэкапилось всё дерево
роуминговых профилей, а там и данные приложения и документы пользователя и всё остальное
(включая реестр ЕМНИП).
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Запись в реестр
    #40031667
Mizer73
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov,
пургу несешь в эфире.
...
Рейтинг: 0 / 0
Запись в реестр
    #40031689
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Офф. То регистр это плохо, это миф с 2000х годов.
Mizer73,
>на самом деле и это не отрабатывает
Удалите лишний код.
Сделайте минимальный пример с комментарием на строчке ошибки и скрином ошибки.
...
Рейтинг: 0 / 0
Запись в реестр
    #40031690
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Еще довод. Реестр проще бэкапить и реплицировать. Как с БД у админа будет сфокусировано внимание на одной сущности. А не на тысяче
директорий и еще бох его знает надо их бэкапить или нет т.к. в файловой системе обычно создается некий флуд скрытых
фолдеров-конфигов которые могут быть не нужны (не релевантны) к ведению админской деятельности.

Спорный довод. Вся прога вместе в конфигами может жить в одной папке, тогда ее очень легко бэкапить или переносить.

С другой стороны есть вирусы-шифровальщики, которые реестр не трогают.
Буквально на днях разбирались: админ пишет что наша прога тупит сильно, по логам выясняем что постоянно выполняются тяжелые служебные операции, которые должны раз в сутки ночью отработать. Оказывается админ защитился от шифровальщиков, убрал права на запись в инишник , а прога пытается писать туда дату последнего запуска.
...
Рейтинг: 0 / 0
Запись в реестр
    #40031694
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Реестр, это всего лишь следующий этап автоматизации после ini.
Например, автоматическое создание каждому новому юзверю своей папки...профили.
Они не конкурируют а дополняют решения по IT
...
Рейтинг: 0 / 0
Запись в реестр
    #40031695
Mizer73
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PetroNotC Sharp, имею это

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
TRegistry* reg2 = new TRegistry(KEY_ALL_ACCESS);
		reg2->RootKey = HKEY_LOCAL_MACHINE;
 g63:
		if (!reg2->KeyExists("Software\\ExtraMaster\\"))
		{
			reg2->CreateKey("Software\\ExtraMaster\\");
			goto g63;
		}
	/*	bool openResult = reg2->("Software\\ExtraMaster\\", true);
		if(!openResult)
		{
			MessageDlg("Unable to create key! Exiting.", mtError, TMsgDlgButtons() << mbOK, 0);
			Application->Terminate();
		} */
		if (!reg2->ValueExists("Connect"))
			reg2->WriteBool("Connect", false);
		if (!reg2->ValueExists("pwd"))
			reg2->WriteString("pwd", "");
		if (!reg2->ValueExists("plz"))
			reg2->WriteString("plz", "");
		if (!reg2->ValueExists("svr"))
			reg2->WriteString("srv", "");
		reg2->CloseKey();
		delete reg2;



вся ветка нормально записано в реестре, но...
при выполнении данного кода, это строка if (!reg2->ValueExists("Connect")) не определяет наличие параметра Connect и пытается его снова создать. Видимо, не определено, где искать этот параметр.
...
Рейтинг: 0 / 0
Запись в реестр
    #40031700
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mizer73,
Поставь перед проверкой if вывод в лог или консоль что там записано.
...
Рейтинг: 0 / 0
Запись в реестр
    #40031701
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mizer73,
Убери goto
...
Рейтинг: 0 / 0
Запись в реестр
    #40031717
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mizer73
Код: plaintext
1.
2.
3.
4.
5.
6.
 g63:
		if (!reg2->KeyExists("Software\\ExtraMaster\\"))
		{
			reg2->CreateKey("Software\\ExtraMaster\\");
			goto g63;
		}


Ты понимаешь что произойдет если CreateKey() по каким-либо причинам не создаст ветку реестра? Твоя программа превратит процессор в обогреватель. Нельзя так писать.

Как выше уже написали - надо получать код ошибки и как-то разбираться с причиной ошибки.
...
Рейтинг: 0 / 0
Запись в реестр
    #40031723
Mizer73
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PetroNotC Sharp,

имеется в виду, что выдаёт if ?
...
Рейтинг: 0 / 0
Запись в реестр
    #40031725
Mizer73
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dima T,
точно, но это на период разработки. Естественно, все это будет уделано проверками по видам ошибок.
пока я не могу разобраться с определенными вещами, что бы делать какую то общую системную обработку ошибок.
там у меня перед всем этим стоит try, который и возьмет на себя основную задачу обработки ошибок. И добавяится вложенные try.
грелки не будет.
...
Рейтинг: 0 / 0
Запись в реестр
    #40031726
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima T
mayton
Еще довод. Реестр проще бэкапить и реплицировать. Как с БД у админа будет сфокусировано внимание на одной сущности. А не на тысяче
директорий и еще бох его знает надо их бэкапить или нет т.к. в файловой системе обычно создается некий флуд скрытых
фолдеров-конфигов которые могут быть не нужны (не релевантны) к ведению админской деятельности.

Спорный довод. Вся прога вместе в конфигами может жить в одной папке, тогда ее очень легко бэкапить или переносить.

Я абсолютно поддержу этот aproach как родной для Unix/Linux подобных конфигураций. Он исторически
прижился и вообще файлы в Linux системах наполнены более широким смыслом нежели в Windows.
Сюда-же семантика скрытого фолдера (начинающийся с точки). Это все - наследние Unix/Linux.

Реестр в Windows все таки зашел эволюционным путем через боль администрирования крупных парков рабочих
станций и поэтому наш спор надо рассматривать именно в разрезе крупного предприятия где есть домены
на базе Microsoft AD и есть чистые Windows рабочие станции на которых надо каждый день делать много
хозяйственных действий.
...
Рейтинг: 0 / 0
Запись в реестр
    #40031728
Mizer73
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dima T,

Код: plaintext
1.
if (!reg2->KeyExists("Software\\ExtraMaster\\"))


это не даёт ошибки. Ветка и параметр есть. Думаю, что он просто, не видит параметров, т.к. видимо не установлен курсор на эту ветку, или как?
...
Рейтинг: 0 / 0
Запись в реестр
    #40031732
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mizer73
PetroNotC Sharp,

имеется в виду, что выдаёт if ?

Нет.
Это шаг любого программиста. Умение логировать. Умеем?
...
Рейтинг: 0 / 0
Запись в реестр
    #40031733
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mizer73
Dima T,

Код: plaintext
1.
if (!reg2->KeyExists("Software\\ExtraMaster\\"))


это не даёт ошибки. Ветка и параметр есть. Думаю, что он просто, не видит параметров, т.к. видимо не установлен курсор на эту ветку, или как?

Логирование.
Пошаговая отладка.
...
Рейтинг: 0 / 0
Запись в реестр
    #40031749
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
Mizer73
Dima T,

Код: plaintext
1.
if (!reg2->KeyExists("Software\\ExtraMaster\\"))


это не даёт ошибки. Ветка и параметр есть. Думаю, что он просто, не видит параметров, т.к. видимо не установлен курсор на эту ветку, или как?

Логирование.
Пошаговая отладка.

А можете вызвать нормальную функцию из этих https://docs.microsoft.com/en-us/windows/win32/sysinfo/registry-functions ?

И дать код ошибки.
...
Рейтинг: 0 / 0
Запись в реестр
    #40031765
Mizer73
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PetroNotC Sharp,

как можно залогировать результат выполнения if ?
...
Рейтинг: 0 / 0
Запись в реестр
    #40031768
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mizer73
PetroNotC Sharp,

как можно залогировать результат выполнения if ?

Вот так
Код: plaintext
1.
2.
3.
4.
5.
log(“1")
if.... {
   log(“2
}
log("3
...
Рейтинг: 0 / 0
Запись в реестр
    #40031773
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonА можете вызвать нормальную функцию

Во-первых, не может. Во вторых, толку-то, если у него логика в коде отсутствет как
таковая. "Если ветка не существует - создать её, потом ещё раз открыть или создать, ах
нет, закомментируем открытие, оно же не работает..."

Аффтар, проверки существования ветки и ключей не нужны тебе в коде вообще. Убери их.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Запись в реестр
    #40031791
Mizer73
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PetroNotC Sharp, это я понимаю и пользуюсь. Я не понимаю, что записывать в лог1, лог 2 и лог3 - какие состояния?
...
Рейтинг: 0 / 0
Запись в реестр
    #40031809
Mizer73
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PetroNotC Sharp,


Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
	TRegistry* reg2 = new TRegistry(KEY_ALL_ACCESS);
		reg2->RootKey = HKEY_LOCAL_MACHINE;
		try
		{
			if (!reg2->KeyExists("Software\\ExtraMaster\\"))
			{
				reg2->CreateKey("Software\\ExtraMaster\\");
			}
			if (!reg2->ValueExists("Connect"))
				reg2->WriteBool("Connect", false);

		}
		catch(Exception *e)
		{
			ShowMessage(e->Message);
		}

;

Ошибка Faild set data for Connect
...
Рейтинг: 0 / 0
Запись в реестр
    #40031812
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mizer73
PetroNotC Sharp, это я понимаю и пользуюсь. Я не понимаю, что записывать в лог1, лог 2 и лог3 - какие состояния?

Сначала просто цифры 1,2,.... чтобы проверить логику кода.
Потом
Код: plaintext
1.
2.
3.
4.
5.
getTextKey() {
..... 
} 
... 
log(getTextKey("мойКлючик"))
...
Рейтинг: 0 / 0
Запись в реестр
    #40031813
Mizer73
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PetroNotC Sharp,

логика понятна - идет создавать ветку, если её нет. Дальше смотрит - если нет параметра, то идет создавать параметр.
Ветку создает, параметр - нет.
на создание параметра пишет: Faild set data for Connect
...
Рейтинг: 0 / 0
Запись в реестр
    #40031814
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mizer73
PetroNotC Sharp,


Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
	TRegistry* reg2 = new TRegistry(KEY_ALL_ACCESS);
		reg2->RootKey = HKEY_LOCAL_MACHINE;
		try
		{
			if (!reg2->KeyExists("Software\\ExtraMaster\\"))
			{
				reg2->CreateKey("Software\\ExtraMaster\\");
			}
			if (!reg2->ValueExists("Connect"))
				reg2->WriteBool("Connect", false);

		}
		catch(Exception *e)
		{
			ShowMessage(e->Message);
		}

;

Ошибка Faild set data for Connect

И где логи? Где скрин ошибки? Где комментарий в коде?
Работай!
...
Рейтинг: 0 / 0
Запись в реестр
    #40031816
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mizer73
PetroNotC Sharp,

логика понятна - идет создавать ветку, если её нет. Дальше смотрит - если нет параметра, то идет создавать параметр.
Ветку создает, параметр - нет.
на создание параметра пишет: Faild set data for Connect

Это у тебя в голове. А машину проверяют КАЖДУЮ строку для новичка.
Ферштейн?
...
Рейтинг: 0 / 0
Запись в реестр
    #40031818
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mizer73логика понятна - идет создавать ветку, если её нет.

Теперь включи формальную логику: "а если ветка есть?"
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Запись в реестр
    #40031819
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov

Mizer73логика понятна - идет создавать ветку, если её нет.

Теперь включи формальную логику: "а если ветка есть?"

Тут сложнее))). Без формальной логики это женский ум)))
...
Рейтинг: 0 / 0
Запись в реестр
    #40031827
Mizer73
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PetroNotC Sharp,
я и иду по каждой строке. На данной момент - нет параметра в ветке. И создать его не получается.
Для меня главное понять логику. Есть конкретная команда создания ветки - CreateKey. А параметр, получается, создаётся только записью значения. А как машина понимает, что я записываю данный параметр именно в эту ветку?
...
Рейтинг: 0 / 0
Запись в реестр
    #40031828
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если ветки (фолдеры) или ключи реестра мы вынесем за скобки - то тогда жизнь намного упрощается.

Вообще какой смысл несут ключи если в них нет значений? Я думаю автору стоит просто взглянуть на задачу
под другим углом.
...
Рейтинг: 0 / 0
Запись в реестр
    #40031829
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mizer73А как машина понимает, что я записываю данный параметр именно в эту ветку?

Внезапно, но никак. Открой уже для себя справку по TRegistry.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Запись в реестр
    #40031831
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mizer73
PetroNotC Sharp,
я и иду по каждой строке. На данной момент - нет параметра в ветке. И создать его не получается.
Для меня главное понять логику. Есть конкретная команда создания ветки - CreateKey. А параметр, получается, создаётся только записью значения. А как машина понимает, что я записываю данный параметр именно в эту ветку?

Ты меня не слышишь или споришь?
Я просил дать логи и скрин.
Твое право болтать и болтать дальше.
...
Рейтинг: 0 / 0
Запись в реестр
    #40031837
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima T
Вся прога вместе в конфигами может жить в одной папке, тогда ее очень легко бэкапить или переносить.

Как-то это примитивно. :)
...
Рейтинг: 0 / 0
Запись в реестр
    #40031838
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton

Я абсолютно поддержу этот aproach как родной для Unix/Linux подобных конфигураций. Он исторически
прижился и вообще файлы в Linux системах наполнены более широким смыслом нежели в Windows.
Сюда-же семантика скрытого фолдера (начинающийся с точки). Это все - наследние Unix/Linux.

Семантика скрытого фолдера, насколько я знаю, это был баг в первых версиях ФС Юникс.

И каким же таким более широким смыслом файлы наполнены в Юникс/Линукс нежели чем в Виндах?
...
Рейтинг: 0 / 0
Запись в реестр
    #40031848
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petrav,

почитай сам. Блочные устройства. Каналы и сокеты. С помощью канальных устройств (mknod)
я делал в Linux/Ext3 для Оракла такие штуки которые в Windows/NTFS принципиально невозможно
повторить.

Скрытый фолдер был скорее багом утилит листинга которые скрывали фолдер с предшетсвующей точкой "."
и эта традиция и сегодня используется в Linux/Unix и к моему ужасу ее перенесли на Windows
просто как порты исходников Linux приложений.

Я по прежнему настаиваю на пользе использования Windows registry для Windows приложений пока
мне не доказали обратное. Тоесть не доказали что реестр опасе или вреден или создает перформанс-проблемы.
...
Рейтинг: 0 / 0
Запись в реестр
    #40031857
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
petrav,

почитай сам. Блочные устройства. Каналы и сокеты.

Воля ваша, но могли бы конечно хотя бы один use case на пальцах пояснить.
...
Рейтинг: 0 / 0
Запись в реестр
    #40031859
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
С ораклом? Ну вот по аналогии с этим. Почитай как толстяк Бурльсон делает экспорт БД в условиях нехватки
места.

http://www.dba-oracle.com/t_export_2_gig_limit.htm

И обрати внимание как работает mknod в операционке linux.

Код: plaintext
1.
2.
mknod compress_pipe p
mknod split_pipe p



Только у меня интереснее было. У меня на 1 физическом сервере стояло 2 БД. И я экспортировал одну
и импортировал в другую одновременно. А толстяк просто сохраняет по конвейеру в файл а потом архивирует gzip-ом.

В скобках замечу что утилита exp/imp НЕ УМЕЕТ работать с STDIN/STDOUT. Это важно.

И попробуй это повторить на Windows.
...
Рейтинг: 0 / 0
Запись в реестр
    #40031865
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
И попробуй это повторить на Windows.
Отсутствие штатных утилит создания каналов, ещё не означает, что их нельзя создать в принципе
...
Рейтинг: 0 / 0
Запись в реестр
    #40031869
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonТоесть не доказали что реестр опасе или вреден или создает перформанс-проблемы.

Во-первых, работа с ним тривиально сложнее. Топикстартер, вон, так и не осилил.
Во-вторых, как я уже сказал, у него нет локальной ветки для пользователя, только
перемещаемая. То есть данные, привязанные к конкретному пользователю И рабочей
станции хранить без извращений не получится.
В-третьих, система считает его своей частью, поэтому бэкапит (и что самое плохое -
восстанавливает) целиком как часть точки восстановления когда ей в голову взбредёт.

Ну и, как всякое структурированное хранилище, иногда он имеет привычку портиться. После
чего следует п.3.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Запись в реестр
    #40031875
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov

maytonТоесть не доказали что реестр опасе или вреден или создает перформанс-проблемы.

Во-вторых, как я уже сказал, у него нет локальной ветки для пользователя, только
перемещаемая. То есть данные, привязанные к конкретному пользователю И рабочей
станции хранить без извращений не получится.
Понимаешь. Мы не можем брать за правило - рассматривать исключения как норму или как основу для архитектур.

Если админ зобанил ветку пользователя - то да. Ну пиши в каталог пользователя. Потом он зобанит
каталог пользователя - ты будешь писать в веб-сокет ну и так далее. До полного абсурда.
Если админ не хочет чтобы софт работал - развеж мы тут ему помешаем?
...
Рейтинг: 0 / 0
Запись в реестр
    #40031876
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,
1. Согласен. Не умеет реестр, пусть файл пишет
2. Настройки для всех обычно прав нет. Ну, MS не рекомендует.
3. Бэкап автоматом это супер
4. Портится положения окон? Ну и фиг с ними
...
Рейтинг: 0 / 0
Запись в реестр
    #40031877
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov

В-третьих, система считает его своей частью, поэтому бэкапит (и что самое плохое -
восстанавливает) целиком как часть точки восстановления когда ей в голову взбредёт.

А вот это уже интересно обсудить без админа. Просто как частный случай.
Был восстановлен старый снапшот реестра. Каково будет поведение приложения?
Я думаю - программист ответит нам.

Кстати поведение приложения хранящего конфиги на файлах не будет лучше
в данном случае. Тоже обсуждается.
...
Рейтинг: 0 / 0
Запись в реестр
    #40031880
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov

maytonТоесть не доказали что реестр опасе или вреден или создает перформанс-проблемы.

Во-первых, работа с ним тривиально сложнее. Топикстартер, вон, так и не осилил.

Не согласен. Я думаю что на файловых операциях мы ТС-а похороним еще быстрее.
Работая с реестром - он работает атомарно к ключами и значениями.

В файлах - больше стейта. Больше аномалий. Файл надо грамотно открыть. Грамотно распарсить.
Модифицировать. И закрыть. Много рутины короче для вместо того чтобы key-value
взят-положить.
...
Рейтинг: 0 / 0
Запись в реестр
    #40031883
m_Sla
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GetPrivateProfileStringW - вроде проще реестра
...
Рейтинг: 0 / 0
Запись в реестр
    #40031886
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
m_Sla
GetPrivateProfileStringW - вроде проще реестра

Это вообще полный капец. В msdn пишут что эта функция осталась только для совместимости с Windows-3.1.

Тоесть это не то что тухляк. Это уже археологическая находка.
...
Рейтинг: 0 / 0
Запись в реестр
    #40031891
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton

Не согласен. Я думаю что на файловых операциях мы ТС-а похороним еще быстрее.
Работая с реестром - он работает атомарно к ключами и значениями.

С ключ-значение атомарно. Но есть ли большая польза от атомарности на уровне одного значения?

Поддерживает ли реестр транзакции? Файл заблокировать то не очень сложно.
...
Рейтинг: 0 / 0
Запись в реестр
    #40031906
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petrav,

В реестре есть дерево.
Класс такой в дельфи появился не давно. А в Си?
...
Рейтинг: 0 / 0
Запись в реестр
    #40031909
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petrav
mayton

Не согласен. Я думаю что на файловых операциях мы ТС-а похороним еще быстрее.
Работая с реестром - он работает атомарно к ключами и значениями.

С ключ-значение атомарно. Но есть ли большая польза от атомарности на уровне одного значения?

Поддерживает ли реестр транзакции? Файл заблокировать то не очень сложно.


Вот что-то есть https://docs.microsoft.com/en-us/windows/win32/api/winreg/nf-winreg-regopenkeytransacteda

надо читать и разбираться.
...
Рейтинг: 0 / 0
Запись в реестр
    #40031917
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC SharpНастройки для всех обычно прав нет. Ну, MS не рекомендует.

Похоже, вы, ребята, не в теме. Почитайте на досуге про различия между
FOLDERID_LocalAppData, FOLDERID_RoamingAppData и FOLDERID_ProgramData в условиях roaming
profiles домена Windows. И если найдёте - то же самое про реестр.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Запись в реестр
    #40031918
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,
Да не нужны там транзакции.
...
Рейтинг: 0 / 0
Запись в реестр
    #40031919
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,
Я не только читаю, но пишу туда
...
Рейтинг: 0 / 0
Запись в реестр
    #40031928
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
m_Sla
GetPrivateProfileStringW - вроде проще реестра

Это вообще полный капец. В msdn пишут что эта функция осталась только для совместимости с Windows-3.1.

Тоесть это не то что тухляк. Это уже археологическая находка.

Вроде как с *.ini по другому никак не поработать штатными средствами. А так да, тухляк, начиная с Win7 ее опошлили добавив кэширование в виртуальном реестре, в итоге какие-то криворукие индусы это дописывали, поэтому работает, но иногда запись через WritePrivateProfileString() не происходит.
...
Рейтинг: 0 / 0
Запись в реестр
    #40031930
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petrav
mayton

Не согласен. Я думаю что на файловых операциях мы ТС-а похороним еще быстрее.
Работая с реестром - он работает атомарно к ключами и значениями.

С ключ-значение атомарно. Но есть ли большая польза от атомарности на уровне одного значения?

Поддерживает ли реестр транзакции? Файл заблокировать то не очень сложно.

SQLite - и транзакции, и один файл данных, и один файл исходника, и еще куча плюшек.
...
Рейтинг: 0 / 0
Запись в реестр
    #40031933
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima T
petrav
пропущено...

С ключ-значение атомарно. Но есть ли большая польза от атомарности на уровне одного значения?

Поддерживает ли реестр транзакции? Файл заблокировать то не очень сложно.

SQLite - и транзакции, и один файл данных, и один файл исходника, и еще куча плюшек.

+1
Но оверхед в цепочке
ini - - > Реестр - - > sqlite
...
Рейтинг: 0 / 0
Запись в реестр
    #40031939
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Видите как интересно. За 30 лет эволюции Windows так и не обзавёлся лаконичным встроенным средством
для работы с файловыми конфигами. Вы все еще работаете с "мешком свойств". Даже не json/yaml.

SQLite надо обсуждать. У него тоже есть оверхед вида "журнал". Мало кому понравится если 1000 раз модифицировав
свойство ваш конфиг умножится в 100 раз по занимаемому месту. Тоесть нужно придумывать какие-то механизмы
самообслуживания. Схлопывания журнала. Или какую-то там архивацию.

В свете всего этого registry по прежнему выглядит привлекательнее.
...
Рейтинг: 0 / 0
Запись в реестр
    #40031940
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
Но оверхед в цепочке
ini - - > Реестр - - > sqlite

В смысле? sqlite медленнее читает/пишет чем ini или реестр? ini однозначно тормознее, т.к. индексов не предусмотрено, реестр тоже СУБД, хз быстрее ли он чем sqlite.
Да и не надо супер скоростей для чтения настроек, а если надо, то в переменных кэшировать и будет точно быстрее.
...
Рейтинг: 0 / 0
Запись в реестр
    #40031942
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
SQLite надо обсуждать. У него тоже есть оверхед вида "журнал". Мало кому понравится если 1000 раз модифицировав
свойство ваш конфиг умножится в 100 раз по занимаемому месту. Тоесть нужно придумывать какие-то механизмы
самообслуживания. Схлопывания журнала. Или какую-то там архивацию.

Все уже есть, только включать надо PRAGMA schema.auto_vacuum
...
Рейтинг: 0 / 0
Запись в реестр
    #40031947
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Видите как интересно. За 30 лет эволюции Windows так и не обзавёлся лаконичным встроенным средством
для работы с файловыми конфигами. Вы все еще работаете с "мешком свойств". Даже не json/yaml.

Есть библиотека MSXML.
...
Рейтинг: 0 / 0
Запись в реестр
    #40031948
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima T,
Оверхед это не медленнее. Это лишние прибамбасы.
...
Рейтинг: 0 / 0
Запись в реестр
    #40031952
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petrav
mayton
Видите как интересно. За 30 лет эволюции Windows так и не обзавёлся лаконичным встроенным средством
для работы с файловыми конфигами. Вы все еще работаете с "мешком свойств". Даже не json/yaml.

Есть библиотека MSXML.

Там есть
String s = reg.readKeyString(“isModal", "да")
?
...
Рейтинг: 0 / 0
Запись в реестр
    #40031957
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
petrav
пропущено...

Есть библиотека MSXML.

Там есть
String s = reg.readKeyString(“isModal", "да")
?

Полная поддержка стандарта. Включая XML схемы.
...
Рейтинг: 0 / 0
Запись в реестр
    #40031958
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petrav
mayton
Видите как интересно. За 30 лет эволюции Windows так и не обзавёлся лаконичным встроенным средством
для работы с файловыми конфигами. Вы все еще работаете с "мешком свойств". Даже не json/yaml.

Есть библиотека MSXML.

Я помню ее. Кажется использовали. Она ужасна. Поддерживает еще тот. Морально
устаревший API который называется SAX. Хотел-бы я посмотреть на тех кто его использует.
Это надо быть большим мозохистом.

И судя по всему она не является частью поставки Windows. Ее надо доустанавливать отдельно.

Я думаю что если поискать по гитхабу - то можно найти более приятные API.
...
Рейтинг: 0 / 0
Запись в реестр
    #40031966
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonВидите как интересно. За 30 лет эволюции Windows так и не обзавёлся лаконичным встроенным
средством для работы с файловыми конфигами.

Удивительно, но Линукс за свои 20 тоже не сподобился. "Тенденция, однако..."
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Запись в реестр
    #40031967
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
petrav
пропущено...

Есть библиотека MSXML.

Я помню ее. Кажется использовали. Она ужасна. Поддерживает еще тот. Морально
устаревший API который называется SAX. Хотел-бы я посмотреть на тех кто его использует.
Это надо быть большим мозохистом.

SAX он не реализовывает. Он реализует DOM.

mayton
И судя по всему она не является частью поставки Windows. Ее надо доустанавливать отдельно.

А мне кажется он давно уже встроен в Винду.
...
Рейтинг: 0 / 0
Запись в реестр
    #40031969
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petrav
PetroNotC Sharp
пропущено...

Там есть
String s = reg.readKeyString(“isModal", "да")
?

Полная поддержка стандарта. Включая XML схемы.
где
HRESULT hr1 = pChildNode2->get_nodeValue(&varValue);
...
Рейтинг: 0 / 0
Запись в реестр
    #40031970
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petrav
mayton
пропущено...

Я помню ее. Кажется использовали. Она ужасна. Поддерживает еще тот. Морально
устаревший API который называется SAX. Хотел-бы я посмотреть на тех кто его использует.
Это надо быть большим мозохистом.

SAX он не реализовывает. Он реализует DOM.

А чем ты обычно .xml проперти читаешь?
...
Рейтинг: 0 / 0
Запись в реестр
    #40031972
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov

maytonВидите как интересно. За 30 лет эволюции Windows так и не обзавёлся лаконичным встроенным
средством для работы с файловыми конфигами.

Удивительно, но Линукс за свои 20 тоже не сподобился. "Тенденция, однако..."

Тут - опасный спор. Фактически спор определений. Мы в топике говоря Линукс - подразумеваем многое.
Хотя в целом я согласен. Но линукс изначально базировал свои конфигурации на файлах. Благо его
файловые системы - более легкие. В плане проверки прав доступа и скорости fopen/close.
...
Рейтинг: 0 / 0
Запись в реестр
    #40031973
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Запись в реестр
    #40031977
Mizer73
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
столкнулся с тем, что

Код: plaintext
1.
2.
3.
4.
if (!reg3->KeyExists("SOFTWARE\\nsoft2"))
{
       сюда не идёт
}



определяет, что ключ есть, а

Код: plaintext
1.
2.
3.
4.
5.
bool openResult = reg3->OpenKey("SOFTWARE\\nsoft2", true);
if(openResult) = false
{
       и сюда не идёт, а должно
}



даёт значение false
...
Рейтинг: 0 / 0
Запись в реестр
    #40031979
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
petrav
пропущено...

SAX он не реализовывает. Он реализует DOM.

А чем ты обычно .xml проперти читаешь?

QtXml.
...
Рейтинг: 0 / 0
Запись в реестр
    #40031982
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petrav
mayton
пропущено...

А чем ты обычно .xml проперти читаешь?

QtXml.

Шикарно. А какой foot-print. Тоесть на сколько килобайт или мегабайт больше становится дистрибутив
после того как ты подключил QtXml?
...
Рейтинг: 0 / 0
Запись в реестр
    #40031988
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mizer73,

Логирование изучил? Теперь пошаговую отладку и смотри на строчку что не так.
...
Рейтинг: 0 / 0
Запись в реестр
    #40031991
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
petrav
пропущено...

QtXml.

Шикарно. А какой foot-print. Тоесть на сколько килобайт или мегабайт больше становится дистрибутив
после того как ты подключил QtXml?

146 килобайт.
...
Рейтинг: 0 / 0
Запись в реестр
    #40031992
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
petrav
пропущено...

Полная поддержка стандарта. Включая XML схемы.
где
HRESULT hr1 = pChildNode2->get_nodeValue(&varValue);

Это вопрос или что?
...
Рейтинг: 0 / 0
Запись в реестр
    #40031999
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да вы не размахивайте крыльями так сильно. Полная поддержка XML стандарта очень сложна.
Особенно если рассматривать там части этого стандарта. И тогда библиотеки надо
просто проводить через сертификации.

В топике-то речь идет о простом. Дан конфиг.

Код: xml
1.
2.
3.
....
<property name="logfile" value="log/log.log"/>
...


это сделать легко. Любой школьник закодит либу.

А далее уже утяжеления всякие. Нужно ли вам делать так?

Код: xml
1.
2.
3.
4.
....
<!ENTITY logref ...>
<property name="logfile" value="&logref;"/>
...



Или еще обработку инструкций или транформинг. Последнее - это уже функциональный язык программирования.

Это все надо? Или можно где-то уже остановится?
...
Рейтинг: 0 / 0
Запись в реестр
    #40032000
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton

Или еще обработку инструкций или транформинг. Последнее - это уже функциональный язык программирования.

Это все надо? Или можно где-то уже остановится?

Вы про что? Про MSXML? Он поддерживает всё: XML DOM, XML схемы, XPath и XSLT. Полная поддержка стандарта. На счёт SAX -- вроде нет, но это, вроде, и не стандарт.

Что по поводу QtXml -- наверное тоже. Но мне от него нужен только XML DOM.
...
Рейтинг: 0 / 0
Запись в реестр
    #40032003
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
Dima T,
Оверхед это не медленнее. Это лишние прибамбасы.

Да, виндавс не андроид, где sqlite доступен по умолчанию. И наверно никогда не будет по умолчанию.

Но если так рассуждать, то все С++ что после MSVC98 тоже оверхэд, т.к. рантайм надо дополнительно ставить.
...
Рейтинг: 0 / 0
Запись в реестр
    #40032009
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
В топике-то речь идет о простом. Дан конфиг.
Код: xml
1.
2.
3.
....
<property name="logfile" value="log/log.log"/>
...


это сделать легко. Любой школьник закодит либу.

Давай чуть дальше заглянем: Как мы правим этот конфиг? Руками в текстовом редакторе оно уже проблематично, т.к. кавычку или слэш или еще какой обязательный символ пропустил и файлик нечитабельный. Для ручной правки идеален INI. В xml/json трудно соблюсти формат.
...
Рейтинг: 0 / 0
Запись в реестр
    #40032014
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima T
mayton
В топике-то речь идет о простом. Дан конфиг.
Код: xml
1.
2.
3.
....
<property name="logfile" value="log/log.log"/>
...


это сделать легко. Любой школьник закодит либу.

Давай чуть дальше заглянем: Как мы правим этот конфиг? Руками в текстовом редакторе оно уже проблематично, т.к. кавычку или слэш или еще какой обязательный символ пропустил и файлик нечитабельный. Для ручной правки идеален INI. В xml/json трудно соблюсти формат.

INI часто недостаточен. Отсутствует древовидная структура и списки.

Плюс в XML на порядки больше вариантов проверки корректности данных.
...
Рейтинг: 0 / 0
Запись в реестр
    #40032018
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petrav
Dima T
пропущено...

Давай чуть дальше заглянем: Как мы правим этот конфиг? Руками в текстовом редакторе оно уже проблематично, т.к. кавычку или слэш или еще какой обязательный символ пропустил и файлик нечитабельный. Для ручной правки идеален INI. В xml/json трудно соблюсти формат.

INI часто недостаточен. Отсутствует древовидная структура и списки.

Плюс в XML на порядки больше вариантов проверки корректности данных.

Повторюсь: с точки зрения ручной правки XML - недоразумение, его сложно править в блокноте, нужны спецсредства. С другой стороны он ущербен при записи как любой текстовый файл. Конфиг в XML это блажь MS, маркетинг и не более того.
...
Рейтинг: 0 / 0
Запись в реестр
    #40032022
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima T
petrav
пропущено...

INI часто недостаточен. Отсутствует древовидная структура и списки.

Плюс в XML на порядки больше вариантов проверки корректности данных.

Повторюсь: с точки зрения ручной правки XML - недоразумение, его сложно править в блокноте, нужны спецсредства. С другой стороны он ущербен при записи как любой текстовый файл. Конфиг в XML это блажь MS, маркетинг и не более того.

У меня таких проблем не возникает.

Вы мне скажите, если мне нужен конфиг с деревом и списками объектов, то по вашему, мне нужна реаляционная БД? Для конфига юзать SQL?! Да ну... блин.

А как вы редактируете такой SQL-конфиг? Носите с собой спец-утилиту?
...
Рейтинг: 0 / 0
Запись в реестр
    #40032032
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petrav
А как вы редактируете такой SQL-конфиг? Носите с собой спец-утилиту?

Можно просто скачать sqlite3.exe и там очень много чего можно https://www.sqlite.org/cli.html
...
Рейтинг: 0 / 0
Запись в реестр
    #40032039
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima T
petrav
пропущено...

INI часто недостаточен. Отсутствует древовидная структура и списки.

Плюс в XML на порядки больше вариантов проверки корректности данных.

Повторюсь: с точки зрения ручной правки XML - недоразумение, его сложно править в блокноте, нужны спецсредства. С другой стороны он ущербен при записи как любой текстовый файл. Конфиг в XML это блажь MS, маркетинг и не более того.

Я не хвалю и не осуждаю. В топике мне сказали дескыть MSXML. Вот и дискуссия пошла туда.

Я сам не люблю XML для конфигов. Он совершенно не human-readable. Так... для всяких
протоколов типа SOAP подходит.
...
Рейтинг: 0 / 0
Запись в реестр
    #40032044
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Он совершенно не human-readable.

У нас часто такой формат используется:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
     ; Название раздела 1
     ; ==================

 1.1 ; Описание значения 1.
-1.2 ; Описание значения 2.
 1.3 ; Описание значения 3.

     ; Название раздела 2
     ; ==================
...

Абсолютный human-readable. Реально круто, без шуток.
...
Рейтинг: 0 / 0
Запись в реестр
    #40032060
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petrav
PetroNotC Sharp
пропущено...
где
HRESULT hr1 = pChildNode2->get_nodeValue(&varValue);

Это вопрос или что?

Я не нашел в API то что показал выше - одной строкой получить значение или умолчание.
Не люблю бойлерплейт-код.
...
Рейтинг: 0 / 0
Запись в реестр
    #40032067
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
petrav
пропущено...

Это вопрос или что?

Я не нашел в API то что показал выше - одной строкой получить значение или умолчание.
Не люблю бойлерплейт-код.

Как-то так .
...
Рейтинг: 0 / 0
Запись в реестр
    #40032108
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petrav,
Где возврат строки? Где возврат default строки если там нечего читать?
Не видишь что код неравнозначный?
...
Рейтинг: 0 / 0
Запись в реестр
    #40032113
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
petrav,
Где возврат строки? Где возврат default строки если там нечего читать?
Не видишь что код неравнозначный?

Там какие-то нюансы связанные с описанием интерфейса COM объекта. Я не помню.
Вот пример сразу чтения текста в аттрибуте xml.
...
Рейтинг: 0 / 0
Запись в реестр
    #40032133
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petrav,
В общем нет там такого
Код: plaintext
1.
String s = reg.readKeyString(“isModal", "да")


И такого от Qt QSettings
Код: plaintext
1.
2.
QSettings *p = new QSettings(file, форматINIorXML)
int i = p->value(sKey, -1).toInt()


Хочешь XML внизу, хочешь ini....
Ну и -1 это удобство при чтении например положения окна на экране left, top, bottom...
...
Рейтинг: 0 / 0
Запись в реестр
    #40032168
Mizer73
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
почему пишет в ветку Software\\Extra\\WOW6432Node , когда задана ветка CreateKey(" Software\\Extra ");
а при чтении читает из Software\\Extra
...
Рейтинг: 0 / 0
Запись в реестр
    #40032169
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mizer73,
Дай полный путь ветки
...
Рейтинг: 0 / 0
Запись в реестр
    #40032174
Mizer73
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PetroNotC Sharp
Mizer73,
Дай полный путь ветки


Компьютер\HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\ExtraMaster - куда записалось


как писалось:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
TRegistry* reg2 = new TRegistry(KEY_ALL_ACCESS);
		reg2->RootKey = HKEY_LOCAL_MACHINE;
		reg2->Access = KEY_ALL_ACCESS;
		try
		{
			if (!reg2->KeyExists("Software\\ExtraMaster\\")) {
				reg2->CreateKey("Software\\ExtraMaster\\");
				reg2->OpenKey("Software\\ExtraMaster\\", true);
				if (!reg2->ValueExists("Connect"))
					reg2->WriteBool("Connect", false);
				if (!reg2->ValueExists("kinde"))
					reg2->WriteBool("kinde", false);
				if (!reg2->ValueExists("pwd"))
					reg2->WriteString("pwd", "");
				if (!reg2->ValueExists("plz"))
					reg2->WriteString("plz", "");
				if (!reg2->ValueExists("svr"))
					reg2->WriteString("srv", "");
            }
...
Рейтинг: 0 / 0
Запись в реестр
    #40032175
Mizer73
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Mizer73
PetroNotC Sharp
Mizer73,
Дай полный путь ветки


Компьютер\HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\ExtraMaster - куда записалось


как писалось:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
TRegistry* reg2 = new TRegistry(KEY_ALL_ACCESS);
		reg2->RootKey = HKEY_LOCAL_MACHINE;
		reg2->Access = KEY_ALL_ACCESS;
		try
		{
			if (!reg2->KeyExists("Software\\ExtraMaster\\")) {
				reg2->CreateKey("Software\\ExtraMaster\\");
				reg2->OpenKey("Software\\ExtraMaster\\", true);
				if (!reg2->ValueExists("Connect"))
					reg2->WriteBool("Connect", false);
				if (!reg2->ValueExists("kinde"))
					reg2->WriteBool("kinde", false);
				if (!reg2->ValueExists("pwd"))
					reg2->WriteString("pwd", "");
				if (!reg2->ValueExists("plz"))
					reg2->WriteString("plz", "");
				if (!reg2->ValueExists("svr"))
					reg2->WriteString("srv", "");
            }



копать сюда
https://docs.microsoft.com/ru-ru/windows/win32/api/winreg/nf-winreg-regdisablereflectionkey?redirectedfrom=MSDN
...
Рейтинг: 0 / 0
Запись в реестр
    #40032179
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mizer73,
Нельзя сюда писать. Только админу.
HKEY_LOCAL_MACHINE
...
Рейтинг: 0 / 0
Запись в реестр
    #40032183
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
petrav,
В общем нет там такого
Код: plaintext
1.
String s = reg.readKeyString(“isModal", "да")


И такого от Qt QSettings
Код: plaintext
1.
2.
QSettings *p = new QSettings(file, форматINIorXML)
int i = p->value(sKey, -1).toInt()


Хочешь XML внизу, хочешь ini....
Ну и -1 это удобство при чтении например положения окна на экране left, top, bottom...

Значение по умолчанию прописывается в XML схеме. Заодно и провалидируешь документ.

На счёт DTD не уверен.

Тут прикол в том, что судя по документации видимо Майкрософт считает MSXML устаревшим. Типа гоу все на .NET.
...
Рейтинг: 0 / 0
Запись в реестр
    #40032193
Mizer73
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PetroNotC Sharp, к сожалению, мне надо сюда писать, т.к. использую красивые компоненты. И надо прописать лицензию.
...
Рейтинг: 0 / 0
Запись в реестр
    #40032194
Mizer73
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PetroNotC Sharp,

сюда же пишут программы свои настройки. Почему я не могу для своей программы написать настройки для своей проги?

а эта лопата не работает
копать сюда
https://docs.microsoft.com/ru-ru/windows/win32/api/winreg/nf-winreg-regdisablereflectionkey?redirectedfrom=MSDN
...
Рейтинг: 0 / 0
Запись в реестр
    #40032200
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petrav,
Не. Схема это черезчур.
Удачи!
...
Рейтинг: 0 / 0
Запись в реестр
    #40032202
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mizer73
Почему я не могу для своей программы написать настройки для своей проги?
Потому, что запись в HKLM требует не просто административных прав, а повышения привилегий.
...
Рейтинг: 0 / 0
Запись в реестр
    #40032203
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mizer73,
Ты раздели. Настройки пользователя и настройки лицензии.
Потом будет сообщение в вашей программе от вас.
: "вы не имеете админских прав. Установка прекращена!"
...
Рейтинг: 0 / 0
Запись в реестр
    #40032212
Mizer73
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PetroNotC Sharp,

с проверкой лицензии все хорошо. все настроено.
проблема одна - записать в реестр для 64 битных.
...
Рейтинг: 0 / 0
Запись в реестр
    #40032214
Mizer73
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Basil A. Sidorov,
при первичном запуске под админом - все хорошо. все записывается. но в другую ветку для 32 битных.

// long f = RegDisableReflectionKey(HKEY_LOCAL_MACHINE);
long f = RegEnableReflectionKey(HKEY_LOCAL_MACHINE);
не работает
...
Рейтинг: 0 / 0
Запись в реестр
    #40032222
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тебе уже дали ссылку в разделе Windows. Далее ходи на описание флагов перенаправления,
использующихся при открытии ветки (и отсутствующих в Билдере).
Например, KEY_WOW64_32KEY.
...
Рейтинг: 0 / 0
Запись в реестр
    #40032226
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mizer73использую красивые компоненты. И надо прописать лицензию.

Обычно лицензии запрещают их распространение и передачу. Так что лучше тебе обратиться за
поддержкой к продавцу этих компонент, а все твои топики на этом форуме будут удалены за
нарушение правил форума.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Запись в реестр
    #40032227
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mizer73
PetroNotC Sharp,

с проверкой лицензии все хорошо. все настроено.
проблема одна - записать в реестр для 64 битных.

Мое имхо что странную прихоть ты придумал сам себе.
Если коммонент Не работает без админа и реестра рутового, то так и напиши здесь на форуме.
А так не интересно.
Удачи!
...
Рейтинг: 0 / 0
Запись в реестр
    #40032241
Mizer73
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov

Mizer73использую красивые компоненты. И надо прописать лицензию.

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

не запрещают, т.к. лицензия на "одно место программиста".
хочу уйти от отдельной установки пакета, т.к. сама программа не требует установочного пакета
...
Рейтинг: 0 / 0
Запись в реестр
    #40032262
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mizer73лицензия на "одно место программиста".

И устанавливаться она должна на одном месте программиста. Её нельзя пихать в установку
программы, написанной этим программистом. Её нельзя устанавливать на двух местах одновременно.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Запись в реестр
    #40032275
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petrav
mayton
Он совершенно не human-readable.

У нас часто такой формат используется:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
     ; Название раздела 1
     ; ==================

 1.1 ; Описание значения 1.
-1.2 ; Описание значения 2.
 1.3 ; Описание значения 3.

     ; Название раздела 2
     ; ==================
...

Абсолютный human-readable. Реально круто, без шуток.

Както чудно. С точки с запятой начинается комментарий?
...
Рейтинг: 0 / 0
Запись в реестр
    #40032297
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
petrav
пропущено...

У нас часто такой формат используется:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
     ; Название раздела 1
     ; ==================

 1.1 ; Описание значения 1.
-1.2 ; Описание значения 2.
 1.3 ; Описание значения 3.

     ; Название раздела 2
     ; ==================
...

Абсолютный human-readable. Реально круто, без шуток.

Както чудно. С точки с запятой начинается комментарий?

Конечно комментарий, это не id. Такой ini читается как книга, всё просто и понятно.
...
Рейтинг: 0 / 0
Запись в реестр
    #40032317
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так у тебя values нету. Если убрать каменты получистя

Код: python
1.
2.
3.
 1.1 
-1.2 
 1.3 



А где само тело конфига? Или это был неудачный пример?
...
Рейтинг: 0 / 0
Запись в реестр
    #40032319
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonКакто чудно.

Чудно - чёрт с ним. Проблема в том, что это совершенно не машино-писабельно. То есть
править такой конфиг может исключительно человек.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Запись в реестр
    #40032320
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Так у тебя values нету. Если убрать каменты получистя

Код: python
1.
2.
3.
 1.1 
-1.2 
 1.3 



А где само тело конфига? Или это был неудачный пример?

Так это и есть values и тело конфига (то что вы процитировали). Причём значения могут быть разных типов, не только double.
...
Рейтинг: 0 / 0
Запись в реестр
    #40032328
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petrav,
Вот оракл любит книгообразие, а MS не любит.
Имей ввиду.
...
Рейтинг: 0 / 0
Запись в реестр
    #40032397
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov

maytonКакто чудно.

Чудно - чёрт с ним. Проблема в том, что это совершенно не машино-писабельно. То есть
править такой конфиг может исключительно человек.

Его и правит только человек. :) Но я не вижу проблем добавить в парсер возможность записи
такого файла (с сохранением комментариев). Подумать придётся только о сохранении выравнивания.
...
Рейтинг: 0 / 0
Запись в реестр
    #40032399
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petrav,
Тогда надо убрать из меню п.п. Сервис - настройки.
Иначе дублирование.
...
Рейтинг: 0 / 0
Запись в реестр
    #40032401
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petrav
Dimitry Sibiryakov

пропущено...

Чудно - чёрт с ним. Проблема в том, что это совершенно не машино-писабельно. То есть
править такой конфиг может исключительно человек.

Его и правит только человек. :) Но я не вижу проблем добавить в парсер возможность записи
такого файла (с сохранением комментариев). Подумать придётся только о сохранении выравнивания.

Да я не против комментариев. Кстати посмотри этот топик.
https://www.sql.ru/forum/1324921/semantika-yaml-dokumenta
Может пригодится.
...
Рейтинг: 0 / 0
Запись в реестр
    #40032411
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petravНо я не вижу проблем добавить в парсер возможность записи
такого файла (с сохранением комментариев).

А я - вижу. Но если сумеете сделать рабочий код не слишком монстрообразным - дайте на
посмотреть.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Запись в реестр
    #40051163
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petrav
mayton
Он совершенно не human-readable.

У нас часто такой формат используется:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
     ; Название раздела 1
     ; ==================

 1.1 ; Описание значения 1.
-1.2 ; Описание значения 2.
 1.3 ; Описание значения 3.

     ; Название раздела 2
     ; ==================
...

Кстати, люди, а как бы вы назвали такой формат файла настроек? Мне в голову приходит
только plain-ini. Просто мне название парсера нужно придумать, но что-то plain-in мне не
нравится. А больше ничего в голову не приходит.
...
Рейтинг: 0 / 0
Запись в реестр
    #40051168
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petravа как бы вы назвали такой формат файла настроек?

Если я честно отвечу на этот вопрос - меня забанят.

К .ini этот формат не имеет никакого отношения, он совершенно кастомный.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Запись в реестр
    #40051169
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
flatINI

?
...
Рейтинг: 0 / 0
Запись в реестр
    #40051170
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov

petravа как бы вы назвали такой формат файла настроек?

Если я честно отвечу на этот вопрос - меня забанят.

К .ini этот формат не имеет никакого отношения, он совершенно кастомный.

Вот поэтому мне и не нравится название plain-ini. Культурное нужно придумать.
Он не кастомный в смысле что каждый файл уникальный. Структура и общая идея
то присутствуют.
...
Рейтинг: 0 / 0
Запись в реестр
    #40051173
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petravСтруктура и общая идея то присутствуют.

Ну и назовите "structured idea parser".

PS: Или "structured text data". Расширение файла получится .std.
...
Рейтинг: 0 / 0
Запись в реестр
    #40051175
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petrav
petrav
пропущено...

У нас часто такой формат используется:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
     ; Название раздела 1
     ; ==================

 1.1 ; Описание значения 1.
-1.2 ; Описание значения 2.
 1.3 ; Описание значения 3.

     ; Название раздела 2
     ; ==================
...

Кстати, люди, а как бы вы назвали такой формат файла настроек? Мне в голову приходит
только plain-ini. Просто мне название парсера нужно придумать, но что-то plain-in мне не
нравится. А больше ничего в голову не приходит.

Любите вы Г... решения)))
...
Рейтинг: 0 / 0
140 сообщений из 140, показаны все 6 страниц
Форумы / C++ [игнор отключен] [закрыт для гостей] / Запись в реестр
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]