Хорошая, простая библиотека конфигурации для большого проекта C++?

В идеале вы будете делать это в виде хранимой процедуры, чтобы разбить работу на куски размером с укус. Вы можете сделать все это в одном операторе SQL, но это становится кошмаром, когда вы добираетесь до последних нескольких параметров!

Основной подход заключается в использовании комбинации CHARINDEX & amp; ПОДПИСАТЬСЯ на разбор URL ... Нашли первый? затем возьмите оттуда до первого & amp; (затем разделите это по обе стороны от =) Затем вы найдете следующий & amp; (разделить на =) и промыть & amp; повторить.

Я начал этот процесс для вас - вы можете расширить его, чтобы получить остальные параметры из URL-адреса - он немного медленный & amp; неуклюже, но, по крайней мере, вы можете видеть, что происходит:

Запустите этот бит SQL, и вы скоро получите идею:

declare @str VARCHAR(8000)= 'https://www.example.com/?utm_source=google&utm_medium=blabla&utm_campaign=gameuser&utm_term=winwin&utm_content=takego'

DECLARE @str1 VARCHAR(8000)= SUBSTRING(@str, CHARINDEX( '?',@str, 1)+1, CHARINDEX( '&',@str, 1) -CHARINDEX( '?',@str, 1)-1)

SELECT SUBSTRING(@str1, 1, CHARINDEX( '=',@str1, 1)-1)

SELECT SUBSTRING(@str1, CHARINDEX( '=',@str1, 1)+1, LEN(@Str1))

DECLARE @str2  VARCHAR(8000) = SUBSTRING(@str, CHARINDEX( '?',@str, 1) + len(@str1) + 2, LEN(@str))

SELECT @str2 = SUBSTRING(@str2, 1, CHARINDEX( '&',@str2, 1)-1)

SELECT @str2
6
задан martinus 30 April 2009 в 14:55
поделиться

4 ответа

boost :: program_options обеспечивает унифицированную (и кроссплатформенную) поддержку конфигурации из командной строки, переменных среды и файлов конфигурации . Кажется, что он должен масштабироваться до нескольких бит большой программной системы, регистрирующей интерес к различным параметрам (например, группы опций ). Тем не менее, не очень помогает с графическим интерфейсом или постоянством (но что не так с редактированием файла конфигурации с помощью текстового редактора?).

7
ответ дан 10 December 2019 в 00:44
поделиться

Я часто использовал простую обертку вокруг pugxml . Я считаю, что создание класса конфигурации с проверкой параметров для перечисляемых типов и т. Д. Делает остальную часть кода намного чище. Если вы просто имеете дело с парами ключ / значение, вам придется проверять данные по всему коду. Написав собственный класс для каждого приложения, вы можете поместить все это в одном месте.

0
ответ дан 10 December 2019 в 00:44
поделиться

Я использовал модифицированную версию кода Джона Торджо из TechRepublic / DDJ (источник )

0
ответ дан 10 December 2019 в 00:44
поделиться

Многоплатформенная ACE библиотека имеет класс конфигурации , который использует файлы конфигурации с [. 117611] Windows .ini формат.

0
ответ дан 10 December 2019 в 00:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: