Описание форматов конфигурационных файлов
Строка — это упорядоченное множество из нуля или более символов юникода, заключённое в двойные кавычки. Символы могут быть указаны с использованием escape-последовательностей, начинающихся с обратной косой черты «» (поддерживаются варианты «, /,, f и), или записаны шестнадцатеричным кодом в кодировке Unicodehttps://ru.wikipedia.org/wiki/Unicode в виде uFFFF. JSON — текстовый формат обмена… Читать ещё >
Описание форматов конфигурационных файлов (реферат, курсовая, диплом, контрольная)
Для оптимизации процесса инициализации программы большая часть данных и настроек проекта вынесена в отдельные файлы, которые называются конфигурационными. Эта практика широко используется при проектировании программного обеспечения, так как значительно облегчает процесс проектирования, разработки и тестирование программных продуктов. Пропадает необходимость редактировать код программы каждый раз, когда необходимо задать новые параметры инициализации. Все параметры находятся в отдельных файлах, в удобном для чтения и понимания формате.
Конечно, для использования конфигурационных файлов необходимо увеличивать программного объем кода. Так как возникает необходимость разрабатывать дополнительные модули для загрузки конфигурационных файлов, с последующей обработкой данных, проверкой корректности формата конфигурационного файла и формированием объектов данных. Только после этого сформированные объекты данных поступают в модели программных модулей, где считываются и изменяются по мере необходимости.
Для хранения данных в конфигурационных файлах данного проекта было принято решение использовать популярный формат JSON.
JSON — текстовый формат обмена данными. Как и многие другие текстовые форматы, JSON легко читается людьми. Несмотря на происхождение от JavaScript, формат считается независимым от языка и может использоваться практически с любым языком программирования. Для многих языков существует готовый код для создания и обработки данных в формате JSON.
JSON-текст представляет собой (в закодированном виде) одну из двух структур:
- — Набор пар ключ:значение. В JavaScript он реализуется как объект с ключом или ассоциативный массив. Ключом может быть только строка (регистрозависимая: слова с буквами в разных регистрах считаются разными), значением — любая форма.
- — Упорядоченный набор значений. Реализовано как массив в языке JavaScript.
Это универсальные структуры данных, многие современные языки программирования, в частности JavaScript поддерживает их в той или иной форме. Они легли в основу JSON, так как он используется для обмена данными между различными языками программирования.
В качестве значений в JSON могут быть использованы:
- — Объект — это неупорядоченное множество пар ключ: значение, заключённое в фигурные скобки «{ }». Ключ описывается строкой, между ним и значением стоит символ «:». Пары ключ-значение отделяются друг от друга запятыми.
- — Массив (одномерный) — это упорядоченное множество значений. Массив заключается в квадратные скобки «[ ]». Значения разделяются запятыми.
- — Число.
- — Литералы true, false и null.
— Строка — это упорядоченное множество из нуля или более символов юникода, заключённое в двойные кавычки. Символы могут быть указаны с использованием escape-последовательностей, начинающихся с обратной косой черты «» (поддерживаются варианты «,, /,, ,, f и), или записаны шестнадцатеричным кодом в кодировке Unicodehttps://ru.wikipedia.org/wiki/Unicode в виде uFFFF.
Пример конфигурационного файла со списком этажей
[.
{file: 'models/floor-1.obj', name: 'Этаж -1', height: -300},.
{file: 'models/floor1.obj', name: 'Этаж 1', height: -250},.
{file: 'models/floor3.obj', name: 'Этаж 2', height: -200},.
{file: 'models/floor4.obj', name: 'Этаж 3', height: -150},.
{file: 'models/floor5.obj', name: 'Этаж 4', height: -100},.
{file: 'models/floor6.obj', name: 'Этаж 5', height: -50},.
{file: 'models/floor6.obj', name: 'Этаж 6', height: 0},.
{file: 'models/floor6.obj', name: 'Этаж 7', height: 50},.
{file: 'models/floor6.obj', name: 'Этаж 8', height: 100},.
{file: 'models/floor6.obj', name: 'Этаж 9', height: 150},.
{file: 'models/floor6.obj', name: 'Этаж 10', height: 200}.
].
Где:
file — путь к файлу модели этажа,.
name — название этажа для отображения в программе,.
height — высота на которой расположен этаж, на карте здания.
Пример конфигурационного файла с объектом панорам
{.
- 0: {x: 80, y: -120, directs: [1, 2, 3], angle: 100, floor: 1},
- 1: {x: 180, y: -120, directs: [0], angle: 184, floor: 1},
- 2: {x: 100, y: -200, directs: [0], angle: -95, floor: 1},
- 3: {x: 30, y: -140, directs: [0, 4], angle: -110, floor: 1},
- 4: {x: -10, y: -140, directs: [3, 5], angle: -157, floor: 1},
- 5: {x: -70, y: -170, directs: [4, 6, 7], angle: -97, floor: 1},
- 6: {x: -80, y: -220, directs: [5], angle: 100, floor: 1},
- 7: {x: -80, y: -120, directs: [5, 8], angle: 270, floor: 1},
- 8: {x: -100, y: -70, directs: [7, 9], angle: -85, floor: 1},
- 9: {x: -105, y: -20, directs: [8, 10], angle: -90, floor: 1},
- 10: {x: -115, y: 20, directs: [9, 11], angle: -275, floor: 1},
- 11: {x: -115, y: 65, directs: [10, 12], angle: 88, floor: 1},
- 12: {x: -115, y: 100, directs: [11, 13], angle: -90, floor: 1},
- 13: {x: -115, y: 135, directs: [12], angle: -90, floor: 1}
}.
Где:
x, y — координаты маячка панорамы на карте этажа,.
directs — массив id маячков соседних панорам,.
angle — угол поворота текстуры,.
floor — индекс этажа.
Пример конфигурационного файла со списком информационных блоков объектов панорамы
[.
{x: 80,.
y: -120,.
symbol: 1,.
content: ' Заголовок.
Пример текста, картинки и видео в качестве контента информационного блока.
Тег video не поддерживается вашим браузером.
'},.
{…},.
{…}.
].
Где:
x, y — координаты объекта на панораме,.
symbol — тип значка информационного блока,.
content — содержимое информационного блока в виде html кода.