Там некоторый распространенный способ состоит в том, чтобы записать и прочитать файлы конфигурации?

Мне нужна моя программа, чтобы создать и отредактировать файл конфигурации, который содержал бы информацию о наборе объектов, и, чем чтение она при каждом выполнении. Есть ли своего рода инструкция для стиля конфигурации, который я могу использовать?

Я использую C++ на окнах.

10
задан Syntax Error 17 April 2010 в 19:17
поделиться

8 ответов

Это во многом зависит от языка, платформы и объема ваших файлов конфигурации. Есть, например, файлы свойств в мире Java для настройки и другие, уже упомянутые здесь, такие как YAML.

XML обычно не одобряется при настройке, поскольку он очень подробный. Вы по-прежнему найдете его во многих приложениях, веб-фреймворках и т. Д.

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

  1. Что является стандартом? (например, ini-файлы в Windows, файлы свойств в Java)
  2. Есть ли встроенная поддержка на моем языке, или мне нужно откатывать собственную реализацию?
  3. Может ли мой формат конфигурации легко описать то, что я хочу сохранить как конфигурацию?

Я уверен, что вы могли бы подумать и о других соображениях. Если вы обновите свой вопрос, чтобы уточнить объем, вы получите более полезные ответы.

5
ответ дан 3 December 2019 в 15:05
поделиться

Я рекомендую проверить boost :: property_tree .

Библиотека дерева свойств предоставляет структуру данных, в которой хранится дерево значений с произвольной глубиной вложенности, индексируемое на каждом уровне некоторым ключом. Каждый узел дерева хранит свое собственное значение, а также упорядоченный список его подузлов и их ключей. Дерево обеспечивает легкий доступ к любому из его узлов с помощью пути, который представляет собой соединение нескольких ключей.

Кроме того, он содержит парсеры и генераторы для XML, INI и JSON, так что вы можете сохранять / загружать в любом формате.

11
ответ дан 3 December 2019 в 15:05
поделиться

Наиболее распространенным форматом является формат INI-файла . В большинстве языков mdoern должно быть что-то встроенное для их обработки, иначе я уверен, что вы сможете найти стороннюю библиотеку.

В противном случае вы можете использовать XML и, если ваш язык поддерживает его, сериализацию и десериализацию из этих файлов XML. Если вы не хотите / не можете использовать XML, большинство языков будут иметь формат по умолчанию, который они используют, например чистый двоичный дамп данных в объекте.

2
ответ дан 3 December 2019 в 15:05
поделиться

YAML - очень популярное решение для создания файлов конфигурации. Например, он широко используется Ruby on Rails и Google AppEngine. Библиотеки YAML доступны для многих, если не для большинства языков.

5
ответ дан 3 December 2019 в 15:05
поделиться

В мире Java файл свойств довольно прост в использовании: http://java.sun.com/ j2se / 1.5.0 / docs / api / java / util / Properties.html Класс Properties представляет постоянный набор свойств. Свойства можно сохранить в поток или загрузить из потока. Каждый ключ и соответствующее ему значение в списке свойств представляют собой строку.

Как говорили другие, вам нужно будет описать свою среду, чтобы получить лучшую рекомендацию.

0
ответ дан 3 December 2019 в 15:05
поделиться

Если вы работаете с Qt (основываясь на других ваших вопросах),

посмотрите на класс QSettings. Я использовал их для установки большого количества постоянной информации, такой как последний посещенный каталог и какие параметры использовались в последний раз.

3
ответ дан 3 December 2019 в 15:05
поделиться

boost :: program_options имеет некоторую способность читать ini файлы.

Что хорошо, так это то, что это позволяет унифицировать чтение ini-файла и параметры командной строки. Что касается программы для Windows, это может не казаться таким уж интересным будущим, но для моего приложения unix это была особенность убийцы.

Однако boost :: po не позволяет редактировать или записывать ini-файлы, поэтому вам, вероятно, будет лучше с boost :: property_tree.

3
ответ дан 3 December 2019 в 15:05
поделиться

Существует бесплатная кроссплатформенная библиотека для управления файлами конфигурации, которая называется libconfig. Он поддерживает очень хорошую грамматику на основе Yaml, а также поддерживает грамматику, определяемую пользователем. Он также имеет много других привязок вычислительного языка. См. Его домашнюю страницу: http://www.hyperrealm.com/libconfig/ .

1
ответ дан 3 December 2019 в 15:05
поделиться
Другие вопросы по тегам:

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