Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / C++ Новый топик    Ответить
Топик располагается на нескольких страницах: 1 2 3 4 5 6      [все]
 Запись в реестр  [new]
Mizer73
Member

Откуда: Питер
Сообщений: 251
Храню в регистре некоторые данные.
Пытался хранить в ветке HKCU HKEY_LOCAL_MACHINE; - но там совсем плохо с возможностью записи
на некоторых машинах даёт писать в HKEY_CURRENT_USER; а на других - нет
как решить проблему доступа к записи в реестр?

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;
26 дек 20, 00:58    [22254483]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
petrav
Member

Откуда:
Сообщений: 2861
Вы уверены, что вам обязательно нужна возможность намусорить в реестр? Может лучше обойтись файлами ini, xml или json?
26 дек 20, 01:19    [22254488]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 52921

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

26 дек 20, 01:20    [22254489]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
petrav
Member

Откуда:
Сообщений: 2861
Mizer73,

И да, лучше завязать с Борландом. Возьмите православный Qt.
26 дек 20, 01:21    [22254491]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 7650
Mizer73
а на других - нет
не верю
26 дек 20, 11:34    [22254561]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
Mizer73
Member

Откуда: Питер
Сообщений: 251
PetroNotC Sharp
Mizer73
а на других - нет
не верю

тем не менее - это из практики.
не поднял бы эту тему, если бы не столкнулся с этим.
Сейчас переделываю все по правилам букварей. Работает.
27 дек 20, 11:37    [22254971]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
mayton
Member

Откуда: loopback
Сообщений: 51017
petrav
Вы уверены, что вам обязательно нужна возможность намусорить в реестр? Может лучше обойтись файлами ini, xml или json?

Что значит намусорить? Это штатная возможность Windows архитектур. И ей надо пользоваться.
27 дек 20, 12:29    [22254987]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 52921

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

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

Posted via ActualForum NNTP Server 1.5

27 дек 20, 14:12    [22255032]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
Dima T
Member

Откуда:
Сообщений: 15689
Dimitry Sibiryakov

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

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

Значит SQLite надо юзать.
27 дек 20, 14:58    [22255054]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
mayton
Member

Откуда: loopback
Сообщений: 51017
Dimitry Sibiryakov

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

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

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

И сравнить варианты развертывания на файлах и на реестре.
27 дек 20, 15:56    [22255078]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 52921

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

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

Posted via ActualForum NNTP Server 1.5

27 дек 20, 16:09    [22255084]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
Mizer73
Member

Откуда: Питер
Сообщений: 251
Dimitry Sibiryakov,

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

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\\, а дальше
они идут друг за другом
try
		{
			if (!reg2->KeyExists("SOFTWARE\\nsoftware\\RT\\IPBBA2\\"))
			{
				reg2->CreateKey("SOFTWARE\\nsoftware\\RT\\IPBBA2\\"); - отрабатывает, 

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

			}


Сообщение было отредактировано: 27 дек 20, 16:20
27 дек 20, 16:24    [22255088]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
Mizer73
Member

Откуда: Питер
Сообщений: 251
Mizer73
Dimitry Sibiryakov,

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

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\\, а дальше
они идут друг за другом
try
		{
			if (!reg2->KeyExists("SOFTWARE\\nsoftware\\RT\\IPBBA2\\"))
			{
				reg2->CreateKey("SOFTWARE\\nsoftware\\RT\\IPBBA2\\"); - отрабатывает, 

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

			}

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

reg2->WriteBool("Connect", false);
reg2->WriteString("pwd", "");
reg2->WriteString("plz", "");
reg2->WriteString("srv", "");
27 дек 20, 16:35    [22255095]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 52921

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

Posted via ActualForum NNTP Server 1.5

27 дек 20, 17:40    [22255112]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
Mizer73
Member

Откуда: Питер
Сообщений: 251
Dimitry Sibiryakov,
попробуй объяснить
27 дек 20, 20:22    [22255175]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
Dima T
Member

Откуда:
Сообщений: 15689
Mizer73, билдер это дельфи. То что Паскаль заменили на С++ оно не стало С++, болячки компоненты какие были, те и остались. Спрашивай в форуме по Дельфи, оно им понятней.
27 дек 20, 20:43    [22255187]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 52921

Dima T
Спрашивай в форуме по Дельфи, оно им понятней.

Думаешь, там до него лучше дойдёт, что значения, возвращаемые функциями, надо проверять, а
ошибки - протоколировать?..

Posted via ActualForum NNTP Server 1.5

27 дек 20, 21:11    [22255195]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
mayton
Member

Откуда: loopback
Сообщений: 51017
Dimitry Sibiryakov

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

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

IMHO и AFAIK.

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

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

Еще довод. Реестр проще бэкапить и реплицировать. Как с БД у админа будет сфокусировано внимание на одной сущности. А не на тысяче
директорий и еще бох его знает надо их бэкапить или нет т.к. в файловой системе обычно создается некий флуд скрытых
фолдеров-конфигов которые могут быть не нужны (не релевантны) к ведению админской деятельности.

Сообщение было отредактировано: 27 дек 20, 22:37
27 дек 20, 22:42    [22255213]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 52921

mayton
Как с БД у админа будет сфокусировано внимание на одной сущности.

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

Posted via ActualForum NNTP Server 1.5

27 дек 20, 23:02    [22255218]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
Mizer73
Member

Откуда: Питер
Сообщений: 251
Dimitry Sibiryakov,
пургу несешь в эфире.
28 дек 20, 01:01    [22255251]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 7650
Офф. То регистр это плохо, это миф с 2000х годов.
Mizer73,
>на самом деле и это не отрабатывает
Удалите лишний код.
Сделайте минимальный пример с комментарием на строчке ошибки и скрином ошибки.
28 дек 20, 08:10    [22255294]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
Dima T
Member

Откуда:
Сообщений: 15689
mayton
Еще довод. Реестр проще бэкапить и реплицировать. Как с БД у админа будет сфокусировано внимание на одной сущности. А не на тысяче
директорий и еще бох его знает надо их бэкапить или нет т.к. в файловой системе обычно создается некий флуд скрытых
фолдеров-конфигов которые могут быть не нужны (не релевантны) к ведению админской деятельности.

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

С другой стороны есть вирусы-шифровальщики, которые реестр не трогают.
Буквально на днях разбирались: админ пишет что наша прога тупит сильно, по логам выясняем что постоянно выполняются тяжелые служебные операции, которые должны раз в сутки ночью отработать. Оказывается админ защитился от шифровальщиков, убрал права на запись в инишник , а прога пытается писать туда дату последнего запуска.
28 дек 20, 08:47    [22255297]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 7650
Реестр, это всего лишь следующий этап автоматизации после ini.
Например, автоматическое создание каждому новому юзверю своей папки...профили.
Они не конкурируют а дополняют решения по IT
28 дек 20, 09:30    [22255313]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
Mizer73
Member

Откуда: Питер
Сообщений: 251
PetroNotC Sharp, имею это

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 и пытается его снова создать. Видимо, не определено, где искать этот параметр.
28 дек 20, 09:42    [22255319]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 7650
Mizer73,
Поставь перед проверкой if вывод в лог или консоль что там записано.
28 дек 20, 10:09    [22255330]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 7650
Mizer73,
Убери goto
28 дек 20, 10:09    [22255331]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
Dima T
Member

Откуда:
Сообщений: 15689
Mizer73
 g63:
		if (!reg2->KeyExists("Software\\ExtraMaster\\"))
		{
			reg2->CreateKey("Software\\ExtraMaster\\");
			goto g63;
		}

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

Как выше уже написали - надо получать код ошибки и как-то разбираться с причиной ошибки.
28 дек 20, 11:21    [22255391]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
Mizer73
Member

Откуда: Питер
Сообщений: 251
PetroNotC Sharp,

имеется в виду, что выдаёт if ?
28 дек 20, 12:07    [22255419]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
Mizer73
Member

Откуда: Питер
Сообщений: 251
Dima T,
точно, но это на период разработки. Естественно, все это будет уделано проверками по видам ошибок.
пока я не могу разобраться с определенными вещами, что бы делать какую то общую системную обработку ошибок.
там у меня перед всем этим стоит try, который и возьмет на себя основную задачу обработки ошибок. И добавяится вложенные try.
грелки не будет.
28 дек 20, 12:11    [22255424]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
mayton
Member

Откуда: loopback
Сообщений: 51017
Dima T
mayton
Еще довод. Реестр проще бэкапить и реплицировать. Как с БД у админа будет сфокусировано внимание на одной сущности. А не на тысяче
директорий и еще бох его знает надо их бэкапить или нет т.к. в файловой системе обычно создается некий флуд скрытых
фолдеров-конфигов которые могут быть не нужны (не релевантны) к ведению админской деятельности.

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

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

Реестр в Windows все таки зашел эволюционным путем через боль администрирования крупных парков рабочих
станций и поэтому наш спор надо рассматривать именно в разрезе крупного предприятия где есть домены
на базе Microsoft AD и есть чистые Windows рабочие станции на которых надо каждый день делать много
хозяйственных действий.
28 дек 20, 12:13    [22255428]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
Mizer73
Member

Откуда: Питер
Сообщений: 251
Dima T,

if (!reg2->KeyExists("Software\\ExtraMaster\\"))

это не даёт ошибки. Ветка и параметр есть. Думаю, что он просто, не видит параметров, т.к. видимо не установлен курсор на эту ветку, или как?
28 дек 20, 12:20    [22255434]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 7650
Mizer73
PetroNotC Sharp,

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

Нет.
Это шаг любого программиста. Умение логировать. Умеем?
28 дек 20, 12:29    [22255443]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 7650
Mizer73
Dima T,

if (!reg2->KeyExists("Software\\ExtraMaster\\"))

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

Логирование.
Пошаговая отладка.
28 дек 20, 12:30    [22255444]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
mayton
Member

Откуда: loopback
Сообщений: 51017
PetroNotC Sharp
Mizer73
Dima T,

if (!reg2->KeyExists("Software\\ExtraMaster\\"))

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

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

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

И дать код ошибки.
28 дек 20, 12:59    [22255476]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
Mizer73
Member

Откуда: Питер
Сообщений: 251
PetroNotC Sharp,

как можно залогировать результат выполнения if ?
28 дек 20, 13:28    [22255505]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 7650
Mizer73
PetroNotC Sharp,

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

Вот так
log(“1")
if.... {
   log(“2
}
log("3
28 дек 20, 13:40    [22255509]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 52921

mayton
А можете вызвать нормальную функцию

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

Аффтар, проверки существования ветки и ключей не нужны тебе в коде вообще. Убери их.

Posted via ActualForum NNTP Server 1.5

28 дек 20, 13:48    [22255518]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
Mizer73
Member

Откуда: Питер
Сообщений: 251
PetroNotC Sharp, это я понимаю и пользуюсь. Я не понимаю, что записывать в лог1, лог 2 и лог3 - какие состояния?
28 дек 20, 14:28    [22255570]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
Mizer73
Member

Откуда: Питер
Сообщений: 251
PetroNotC Sharp,


	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
28 дек 20, 14:47    [22255604]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 7650
Mizer73
PetroNotC Sharp, это я понимаю и пользуюсь. Я не понимаю, что записывать в лог1, лог 2 и лог3 - какие состояния?

Сначала просто цифры 1,2,.... чтобы проверить логику кода.
Потом
getTextKey() {
..... 
} 
... 
log(getTextKey("мойКлючик"))
28 дек 20, 14:56    [22255609]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
Mizer73
Member

Откуда: Питер
Сообщений: 251
PetroNotC Sharp,

логика понятна - идет создавать ветку, если её нет. Дальше смотрит - если нет параметра, то идет создавать параметр.
Ветку создает, параметр - нет.
на создание параметра пишет: Faild set data for Connect
28 дек 20, 14:59    [22255611]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 7650
Mizer73
PetroNotC Sharp,


	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

И где логи? Где скрин ошибки? Где комментарий в коде?
Работай!
28 дек 20, 14:59    [22255612]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 7650
Mizer73
PetroNotC Sharp,

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

Это у тебя в голове. А машину проверяют КАЖДУЮ строку для новичка.
Ферштейн?
28 дек 20, 15:01    [22255616]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 52921

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

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

Posted via ActualForum NNTP Server 1.5

28 дек 20, 15:06    [22255622]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 7650
Dimitry Sibiryakov

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

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

Тут сложнее))). Без формальной логики это женский ум)))
28 дек 20, 15:09    [22255624]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
Mizer73
Member

Откуда: Питер
Сообщений: 251
PetroNotC Sharp,
я и иду по каждой строке. На данной момент - нет параметра в ветке. И создать его не получается.
Для меня главное понять логику. Есть конкретная команда создания ветки - CreateKey. А параметр, получается, создаётся только записью значения. А как машина понимает, что я записываю данный параметр именно в эту ветку?
28 дек 20, 15:27    [22255643]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
mayton
Member

Откуда: loopback
Сообщений: 51017
Если ветки (фолдеры) или ключи реестра мы вынесем за скобки - то тогда жизнь намного упрощается.

Вообще какой смысл несут ключи если в них нет значений? Я думаю автору стоит просто взглянуть на задачу
под другим углом.
28 дек 20, 15:28    [22255644]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 52921

Mizer73
А как машина понимает, что я записываю данный параметр именно в эту ветку?

Внезапно, но никак. Открой уже для себя справку по TRegistry.

Posted via ActualForum NNTP Server 1.5

28 дек 20, 15:29    [22255645]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 7650
Mizer73
PetroNotC Sharp,
я и иду по каждой строке. На данной момент - нет параметра в ветке. И создать его не получается.
Для меня главное понять логику. Есть конкретная команда создания ветки - CreateKey. А параметр, получается, создаётся только записью значения. А как машина понимает, что я записываю данный параметр именно в эту ветку?

Ты меня не слышишь или споришь?
Я просил дать логи и скрин.
Твое право болтать и болтать дальше.
28 дек 20, 15:35    [22255650]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
petrav
Member

Откуда:
Сообщений: 2861
Dima T
Вся прога вместе в конфигами может жить в одной папке, тогда ее очень легко бэкапить или переносить.

Как-то это примитивно. :)
28 дек 20, 15:48    [22255664]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
petrav
Member

Откуда:
Сообщений: 2861
mayton

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

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

И каким же таким более широким смыслом файлы наполнены в Юникс/Линукс нежели чем в Виндах?
28 дек 20, 15:54    [22255667]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
mayton
Member

Откуда: loopback
Сообщений: 51017
petrav,

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

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

Я по прежнему настаиваю на пользе использования Windows registry для Windows приложений пока
мне не доказали обратное. Тоесть не доказали что реестр опасе или вреден или создает перформанс-проблемы.
28 дек 20, 16:26    [22255695]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
petrav
Member

Откуда:
Сообщений: 2861
mayton
petrav,

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

Воля ваша, но могли бы конечно хотя бы один use case на пальцах пояснить.
28 дек 20, 16:46    [22255718]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
mayton
Member

Откуда: loopback
Сообщений: 51017
С ораклом? Ну вот по аналогии с этим. Почитай как толстяк Бурльсон делает экспорт БД в условиях нехватки
места.

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

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

mknod compress_pipe p
mknod split_pipe p


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

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

И попробуй это повторить на Windows.
28 дек 20, 16:51    [22255721]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
Basil A. Sidorov
Member

Откуда:
Сообщений: 10925
mayton
И попробуй это повторить на Windows.
Отсутствие штатных утилит создания каналов, ещё не означает, что их нельзя создать в принципе
28 дек 20, 17:00    [22255737]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 52921

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

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

Ну и, как всякое структурированное хранилище, иногда он имеет привычку портиться. После
чего следует п.3.

Posted via ActualForum NNTP Server 1.5

28 дек 20, 17:08    [22255752]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
mayton
Member

Откуда: loopback
Сообщений: 51017
Dimitry Sibiryakov

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

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

Понимаешь. Мы не можем брать за правило - рассматривать исключения как норму или как основу для архитектур.

Если админ зобанил ветку пользователя - то да. Ну пиши в каталог пользователя. Потом он зобанит
каталог пользователя - ты будешь писать в веб-сокет ну и так далее. До полного абсурда.
Если админ не хочет чтобы софт работал - развеж мы тут ему помешаем?

Сообщение было отредактировано: 28 дек 20, 17:21
28 дек 20, 17:23    [22255773]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 7650
Dimitry Sibiryakov,
1. Согласен. Не умеет реестр, пусть файл пишет
2. Настройки для всех обычно прав нет. Ну, MS не рекомендует.
3. Бэкап автоматом это супер
4. Портится положения окон? Ну и фиг с ними
28 дек 20, 17:25    [22255776]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
mayton
Member

Откуда: loopback
Сообщений: 51017
Dimitry Sibiryakov

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

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

Кстати поведение приложения хранящего конфиги на файлах не будет лучше
в данном случае. Тоже обсуждается.
28 дек 20, 17:25    [22255777]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
mayton
Member

Откуда: loopback
Сообщений: 51017
Dimitry Sibiryakov

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

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

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

В файлах - больше стейта. Больше аномалий. Файл надо грамотно открыть. Грамотно распарсить.
Модифицировать. И закрыть. Много рутины короче для вместо того чтобы key-value
взят-положить.
28 дек 20, 17:29    [22255785]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
m_Sla
Member

Откуда:
Сообщений: 2709
GetPrivateProfileStringW - вроде проще реестра
28 дек 20, 17:40    [22255803]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
mayton
Member

Откуда: loopback
Сообщений: 51017
m_Sla
GetPrivateProfileStringW - вроде проще реестра

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

Тоесть это не то что тухляк. Это уже археологическая находка.
28 дек 20, 17:45    [22255811]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
petrav
Member

Откуда:
Сообщений: 2861
mayton

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

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

Поддерживает ли реестр транзакции? Файл заблокировать то не очень сложно.
28 дек 20, 17:54    [22255830]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 7650
petrav,

В реестре есть дерево.
Класс такой в дельфи появился не давно. А в Си?
28 дек 20, 18:34    [22255874]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
mayton
Member

Откуда: loopback
Сообщений: 51017
petrav
mayton

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

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

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


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

надо читать и разбираться.
28 дек 20, 18:37    [22255878]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 52921

PetroNotC Sharp
Настройки для всех обычно прав нет. Ну, MS не рекомендует.

Похоже, вы, ребята, не в теме. Почитайте на досуге про различия между
FOLDERID_LocalAppData, FOLDERID_RoamingAppData и FOLDERID_ProgramData в условиях roaming
profiles домена Windows. И если найдёте - то же самое про реестр.

Posted via ActualForum NNTP Server 1.5

28 дек 20, 18:48    [22255888]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 7650
mayton,
Да не нужны там транзакции.
28 дек 20, 18:49    [22255889]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 7650
Dimitry Sibiryakov,
Я не только читаю, но пишу туда
28 дек 20, 18:50    [22255890]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
Dima T
Member

Откуда:
Сообщений: 15689
mayton
m_Sla
GetPrivateProfileStringW - вроде проще реестра

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

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

Вроде как с *.ini по другому никак не поработать штатными средствами. А так да, тухляк, начиная с Win7 ее опошлили добавив кэширование в виртуальном реестре, в итоге какие-то криворукие индусы это дописывали, поэтому работает, но иногда запись через WritePrivateProfileString() не происходит.
28 дек 20, 19:06    [22255904]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
Dima T
Member

Откуда:
Сообщений: 15689
petrav
mayton

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

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

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

SQLite - и транзакции, и один файл данных, и один файл исходника, и еще куча плюшек.
28 дек 20, 19:08    [22255907]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 7650
Dima T
petrav
пропущено...

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

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

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

+1
Но оверхед в цепочке
ini - - > Реестр - - > sqlite
28 дек 20, 19:16    [22255912]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
mayton
Member

Откуда: loopback
Сообщений: 51017
Видите как интересно. За 30 лет эволюции Windows так и не обзавёлся лаконичным встроенным средством
для работы с файловыми конфигами. Вы все еще работаете с "мешком свойств". Даже не json/yaml.

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

В свете всего этого registry по прежнему выглядит привлекательнее.
28 дек 20, 19:26    [22255922]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
Dima T
Member

Откуда:
Сообщений: 15689
PetroNotC Sharp
Но оверхед в цепочке
ini - - > Реестр - - > sqlite

В смысле? sqlite медленнее читает/пишет чем ini или реестр? ini однозначно тормознее, т.к. индексов не предусмотрено, реестр тоже СУБД, хз быстрее ли он чем sqlite.
Да и не надо супер скоростей для чтения настроек, а если надо, то в переменных кэшировать и будет точно быстрее.
28 дек 20, 19:26    [22255923]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
Dima T
Member

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

Все уже есть, только включать надо PRAGMA schema.auto_vacuum
28 дек 20, 19:31    [22255926]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
petrav
Member

Откуда:
Сообщений: 2861
mayton
Видите как интересно. За 30 лет эволюции Windows так и не обзавёлся лаконичным встроенным средством
для работы с файловыми конфигами. Вы все еще работаете с "мешком свойств". Даже не json/yaml.

Есть библиотека MSXML.
28 дек 20, 19:39    [22255934]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 7650
Dima T,
Оверхед это не медленнее. Это лишние прибамбасы.
28 дек 20, 19:39    [22255935]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 7650
petrav
mayton
Видите как интересно. За 30 лет эволюции Windows так и не обзавёлся лаконичным встроенным средством
для работы с файловыми конфигами. Вы все еще работаете с "мешком свойств". Даже не json/yaml.

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

Там есть
String s = reg.readKeyString(“isModal", "да")
?
28 дек 20, 19:45    [22255941]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
petrav
Member

Откуда:
Сообщений: 2861
PetroNotC Sharp
petrav
пропущено...

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

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

Полная поддержка стандарта. Включая XML схемы.
28 дек 20, 19:58    [22255952]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
mayton
Member

Откуда: loopback
Сообщений: 51017
petrav
mayton
Видите как интересно. За 30 лет эволюции Windows так и не обзавёлся лаконичным встроенным средством
для работы с файловыми конфигами. Вы все еще работаете с "мешком свойств". Даже не json/yaml.

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

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

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

Я думаю что если поискать по гитхабу - то можно найти более приятные API.
28 дек 20, 20:00    [22255953]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 52921

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

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

Posted via ActualForum NNTP Server 1.5

28 дек 20, 20:10    [22255963]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
petrav
Member

Откуда:
Сообщений: 2861
mayton
petrav
пропущено...

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

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

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

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

А мне кажется он давно уже встроен в Винду.
28 дек 20, 20:12    [22255964]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 7650
petrav
PetroNotC Sharp
пропущено...

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

Полная поддержка стандарта. Включая XML схемы.
где
HRESULT hr1 = pChildNode2->get_nodeValue(&varValue);
28 дек 20, 20:15    [22255966]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
mayton
Member

Откуда: loopback
Сообщений: 51017
petrav
mayton
пропущено...

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

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

А чем ты обычно .xml проперти читаешь?
28 дек 20, 20:15    [22255967]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
mayton
Member

Откуда: loopback
Сообщений: 51017
Dimitry Sibiryakov

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

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

Тут - опасный спор. Фактически спор определений. Мы в топике говоря Линукс - подразумеваем многое.
Хотя в целом я согласен. Но линукс изначально базировал свои конфигурации на файлах. Благо его
файловые системы - более легкие. В плане проверки прав доступа и скорости fopen/close.
28 дек 20, 20:18    [22255970]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 7650
mayton,
QSettings
https://doc.qt.io/qt-5/qsettings.html
28 дек 20, 20:18    [22255971]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
Mizer73
Member

Откуда: Питер
Сообщений: 251
столкнулся с тем, что

if (!reg3->KeyExists("SOFTWARE\\nsoft2"))
{
       сюда не идёт
}


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

bool openResult = reg3->OpenKey("SOFTWARE\\nsoft2", true);
if(openResult) [i]= false[/i]
{
       и сюда не идёт, а должно
}


даёт значение false

Сообщение было отредактировано: 28 дек 20, 20:17
28 дек 20, 20:21    [22255976]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
petrav
Member

Откуда:
Сообщений: 2861
mayton
petrav
пропущено...

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

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

QtXml.
28 дек 20, 20:22    [22255979]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
mayton
Member

Откуда: loopback
Сообщений: 51017
petrav
mayton
пропущено...

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

QtXml.

Шикарно. А какой foot-print. Тоесть на сколько килобайт или мегабайт больше становится дистрибутив
после того как ты подключил QtXml?
28 дек 20, 20:24    [22255982]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 7650
Mizer73,

Логирование изучил? Теперь пошаговую отладку и смотри на строчку что не так.
28 дек 20, 20:29    [22255988]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
petrav
Member

Откуда:
Сообщений: 2861
mayton
petrav
пропущено...

QtXml.

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

146 килобайт.
28 дек 20, 20:33    [22255992]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
petrav
Member

Откуда:
Сообщений: 2861
PetroNotC Sharp
petrav
пропущено...

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

Это вопрос или что?
28 дек 20, 20:34    [22255993]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
mayton
Member

Откуда: loopback
Сообщений: 51017
Да вы не размахивайте крыльями так сильно. Полная поддержка XML стандарта очень сложна.
Особенно если рассматривать там части этого стандарта. И тогда библиотеки надо
просто проводить через сертификации.

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

....
<property name="logfile" value="log/log.log"/>
...

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

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

....
<!ENTITY logref ...>
<property name="logfile" value="&logref;"/>
...


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

Это все надо? Или можно где-то уже остановится?
28 дек 20, 20:54    [22256001]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
petrav
Member

Откуда:
Сообщений: 2861
mayton

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

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

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

Что по поводу QtXml -- наверное тоже. Но мне от него нужен только XML DOM.

Сообщение было отредактировано: 28 дек 20, 21:06
28 дек 20, 21:02    [22256002]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
Dima T
Member

Откуда:
Сообщений: 15689
PetroNotC Sharp
Dima T,
Оверхед это не медленнее. Это лишние прибамбасы.

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

Но если так рассуждать, то все С++ что после MSVC98 тоже оверхэд, т.к. рантайм надо дополнительно ставить.
28 дек 20, 21:15    [22256006]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
Dima T
Member

Откуда:
Сообщений: 15689
mayton
В топике-то речь идет о простом. Дан конфиг.
....
<property name="logfile" value="log/log.log"/>
...

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

Давай чуть дальше заглянем: Как мы правим этот конфиг? Руками в текстовом редакторе оно уже проблематично, т.к. кавычку или слэш или еще какой обязательный символ пропустил и файлик нечитабельный. Для ручной правки идеален INI. В xml/json трудно соблюсти формат.
28 дек 20, 21:22    [22256012]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
petrav
Member

Откуда:
Сообщений: 2861
Dima T
mayton
В топике-то речь идет о простом. Дан конфиг.
....
<property name="logfile" value="log/log.log"/>
...

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

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

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

Плюс в XML на порядки больше вариантов проверки корректности данных.
28 дек 20, 21:32    [22256017]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
Dima T
Member

Откуда:
Сообщений: 15689
petrav
Dima T
пропущено...

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

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

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

Повторюсь: с точки зрения ручной правки XML - недоразумение, его сложно править в блокноте, нужны спецсредства. С другой стороны он ущербен при записи как любой текстовый файл. Конфиг в XML это блажь MS, маркетинг и не более того.
28 дек 20, 21:45    [22256025]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
petrav
Member

Откуда:
Сообщений: 2861
Dima T
petrav
пропущено...

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

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

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

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

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

А как вы редактируете такой SQL-конфиг? Носите с собой спец-утилиту?
28 дек 20, 21:54    [22256034]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
Dima T
Member

Откуда:
Сообщений: 15689
petrav
А как вы редактируете такой SQL-конфиг? Носите с собой спец-утилиту?

Можно просто скачать sqlite3.exe и там очень много чего можно https://www.sqlite.org/cli.html
28 дек 20, 22:30    [22256045]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
mayton
Member

Откуда: loopback
Сообщений: 51017
Dima T
petrav
пропущено...

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

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

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

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

Я сам не люблю XML для конфигов. Он совершенно не human-readable. Так... для всяких
протоколов типа SOAP подходит.
28 дек 20, 22:58    [22256055]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
petrav
Member

Откуда:
Сообщений: 2861
mayton
Он совершенно не human-readable.

У нас часто такой формат используется:

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

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

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

Абсолютный human-readable. Реально круто, без шуток.
28 дек 20, 23:10    [22256062]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 7650
petrav
PetroNotC Sharp
пропущено...
где
HRESULT hr1 = pChildNode2->get_nodeValue(&varValue);

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

Я не нашел в API то что показал выше - одной строкой получить значение или умолчание.
Не люблю бойлерплейт-код.
28 дек 20, 23:55    [22256084]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
petrav
Member

Откуда:
Сообщений: 2861
PetroNotC Sharp
petrav
пропущено...

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

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

Как-то так.
29 дек 20, 00:03    [22256092]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 7650
petrav,
Где возврат строки? Где возврат default строки если там нечего читать?
Не видишь что код неравнозначный?
29 дек 20, 07:42    [22256142]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
petrav
Member

Откуда:
Сообщений: 2861
PetroNotC Sharp
petrav,
Где возврат строки? Где возврат default строки если там нечего читать?
Не видишь что код неравнозначный?

Там какие-то нюансы связанные с описанием интерфейса COM объекта. Я не помню.
Вот пример сразу чтения текста в аттрибуте xml.
29 дек 20, 09:02    [22256150]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 7650
petrav,
В общем нет там такого
String s = reg.readKeyString(“isModal", "да")

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

Хочешь XML внизу, хочешь ini....
Ну и -1 это удобство при чтении например положения окна на экране left, top, bottom...
29 дек 20, 10:37    [22256184]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
Mizer73
Member

Откуда: Питер
Сообщений: 251
почему пишет в ветку Software\\Extra\\WOW6432Node, когда задана ветка CreateKey("Software\\Extra");
а при чтении читает из Software\\Extra
29 дек 20, 12:01    [22256264]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 7650
Mizer73,
Дай полный путь ветки
29 дек 20, 12:04    [22256268]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
Mizer73
Member

Откуда: Питер
Сообщений: 251
PetroNotC Sharp
Mizer73,
Дай полный путь ветки


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


как писалось:
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", "");
            }


Сообщение было отредактировано: 29 дек 20, 12:05
29 дек 20, 12:08    [22256276]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
Mizer73
Member

Откуда: Питер
Сообщений: 251
Mizer73
PetroNotC Sharp
Mizer73,
Дай полный путь ветки


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


как писалось:
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
29 дек 20, 12:14    [22256279]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 7650
Mizer73,
Нельзя сюда писать. Только админу.
HKEY_LOCAL_MACHINE
29 дек 20, 12:22    [22256289]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
petrav
Member

Откуда:
Сообщений: 2861
PetroNotC Sharp
petrav,
В общем нет там такого
String s = reg.readKeyString(“isModal", "да")

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

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

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

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

Тут прикол в том, что судя по документации видимо Майкрософт считает MSXML устаревшим. Типа гоу все на .NET.
29 дек 20, 12:27    [22256293]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
Mizer73
Member

Откуда: Питер
Сообщений: 251
PetroNotC Sharp, к сожалению, мне надо сюда писать, т.к. использую красивые компоненты. И надо прописать лицензию.
29 дек 20, 12:39    [22256308]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
Mizer73
Member

Откуда: Питер
Сообщений: 251
PetroNotC Sharp,

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

а эта лопата не работает
копать сюда
https://docs.microsoft.com/ru-ru/windows/win32/api/winreg/nf-winreg-regdisablereflectionkey?redirectedfrom=MSDN
29 дек 20, 12:41    [22256310]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 7650
petrav,
Не. Схема это черезчур.
Удачи!
29 дек 20, 12:44    [22256317]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
Basil A. Sidorov
Member

Откуда:
Сообщений: 10925
Mizer73
Почему я не могу для своей программы написать настройки для своей проги?
Потому, что запись в HKLM требует не просто административных прав, а повышения привилегий.
29 дек 20, 12:44    [22256319]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 7650
Mizer73,
Ты раздели. Настройки пользователя и настройки лицензии.
Потом будет сообщение в вашей программе от вас.
: "вы не имеете админских прав. Установка прекращена!"
29 дек 20, 12:46    [22256320]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
Mizer73
Member

Откуда: Питер
Сообщений: 251
PetroNotC Sharp,

с проверкой лицензии все хорошо. все настроено.
проблема одна - записать в реестр для 64 битных.
29 дек 20, 13:08    [22256351]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
Mizer73
Member

Откуда: Питер
Сообщений: 251
Basil A. Sidorov,
при первичном запуске под админом - все хорошо. все записывается. но в другую ветку для 32 битных.

// long f = RegDisableReflectionKey(HKEY_LOCAL_MACHINE);
long f = RegEnableReflectionKey(HKEY_LOCAL_MACHINE);
не работает
29 дек 20, 13:10    [22256354]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 52921
Тебе уже дали ссылку в разделе Windows. Далее ходи на описание флагов перенаправления,
использующихся при открытии ветки (и отсутствующих в Билдере).
Например, KEY_WOW64_32KEY.

Сообщение было отредактировано: 29 дек 20, 13:22
29 дек 20, 13:26    [22256389]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 52921

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

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

Posted via ActualForum NNTP Server 1.5

29 дек 20, 13:34    [22256398]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 7650
Mizer73
PetroNotC Sharp,

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

Мое имхо что странную прихоть ты придумал сам себе.
Если коммонент Не работает без админа и реестра рутового, то так и напиши здесь на форуме.
А так не интересно.
Удачи!
29 дек 20, 13:36    [22256400]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
Mizer73
Member

Откуда: Питер
Сообщений: 251
Dimitry Sibiryakov

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

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

не запрещают, т.к. лицензия на "одно место программиста".
хочу уйти от отдельной установки пакета, т.к. сама программа не требует установочного пакета
29 дек 20, 14:12    [22256431]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 52921

Mizer73
лицензия на "одно место программиста".

И устанавливаться она должна на одном месте программиста. Её нельзя пихать в установку
программы, написанной этим программистом. Её нельзя устанавливать на двух местах одновременно.

Posted via ActualForum NNTP Server 1.5

29 дек 20, 14:43    [22256460]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
mayton
Member

Откуда: loopback
Сообщений: 51017
petrav
mayton
Он совершенно не human-readable.

У нас часто такой формат используется:

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

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

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

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

Както чудно. С точки с запятой начинается комментарий?
29 дек 20, 15:01    [22256484]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
petrav
Member

Откуда:
Сообщений: 2861
mayton
petrav
пропущено...

У нас часто такой формат используется:

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

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

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

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

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

Конечно комментарий, это не id. Такой ini читается как книга, всё просто и понятно.
29 дек 20, 15:17    [22256509]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
mayton
Member

Откуда: loopback
Сообщений: 51017
Так у тебя values нету. Если убрать каменты получистя

 1.1 
-1.2 
 1.3 


А где само тело конфига? Или это был неудачный пример?
29 дек 20, 15:34    [22256531]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 52921

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

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

Posted via ActualForum NNTP Server 1.5

29 дек 20, 15:37    [22256533]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
petrav
Member

Откуда:
Сообщений: 2861
mayton
Так у тебя values нету. Если убрать каменты получистя

 1.1 
-1.2 
 1.3 


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

Так это и есть values и тело конфига (то что вы процитировали). Причём значения могут быть разных типов, не только double.
29 дек 20, 15:37    [22256534]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 7650
petrav,
Вот оракл любит книгообразие, а MS не любит.
Имей ввиду.
29 дек 20, 15:52    [22256544]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
petrav
Member

Откуда:
Сообщений: 2861
Dimitry Sibiryakov

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

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

Его и правит только человек. :) Но я не вижу проблем добавить в парсер возможность записи
такого файла (с сохранением комментариев). Подумать придётся только о сохранении выравнивания.
29 дек 20, 17:54    [22256667]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 7650
petrav,
Тогда надо убрать из меню п.п. Сервис - настройки.
Иначе дублирование.
29 дек 20, 18:01    [22256675]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
mayton
Member

Откуда: loopback
Сообщений: 51017
petrav
Dimitry Sibiryakov

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

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

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

Да я не против комментариев. Кстати посмотри этот топик.
https://www.sql.ru/forum/1324921/semantika-yaml-dokumenta
Может пригодится.
29 дек 20, 18:06    [22256681]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 52921

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

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

Posted via ActualForum NNTP Server 1.5

29 дек 20, 18:29    [22256699]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
petrav
Member

Откуда:
Сообщений: 2861
petrav
mayton
Он совершенно не human-readable.

У нас часто такой формат используется:

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

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

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

Кстати, люди, а как бы вы назвали такой формат файла настроек? Мне в голову приходит
только plain-ini. Просто мне название парсера нужно придумать, но что-то plain-in мне не
нравится. А больше ничего в голову не приходит.
5 мар 21, 18:59    [22290417]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 52921

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

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

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

Posted via ActualForum NNTP Server 1.5

5 мар 21, 19:07    [22290423]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
Basil A. Sidorov
Member

Откуда:
Сообщений: 10925
flatINI
?
5 мар 21, 19:08    [22290424]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
petrav
Member

Откуда:
Сообщений: 2861
Dimitry Sibiryakov

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

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

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

Вот поэтому мне и не нравится название plain-ini. Культурное нужно придумать.
Он не кастомный в смысле что каждый файл уникальный. Структура и общая идея
то присутствуют.
5 мар 21, 19:10    [22290426]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 52921
petrav
Структура и общая идея то присутствуют.

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

PS: Или "structured text data". Расширение файла получится .std.

Сообщение было отредактировано: 5 мар 21, 19:14
5 мар 21, 19:17    [22290429]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 7650
petrav
petrav
пропущено...

У нас часто такой формат используется:

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

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

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

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

Любите вы Г... решения)))
5 мар 21, 19:23    [22290432]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: 1 2 3 4 5 6      [все]
Все форумы / C++ Ответить