Как генерировать и анализировать необработанные двоичные данные, используя yaml-cpp - PullRequest
3 голосов
/ 28 октября 2010

Можно ли генерировать и читать (анализировать) двоичные данные (изображение, файл и т. Д.)? Как это показано здесь: http://yaml.org/type/binary.html Как я могу сделать это в yaml-cpp?

Ответы [ 2 ]

2 голосов
/ 29 октября 2010

По состоянию на ревизия 425 , да!(для передачи)

YAML::Emitter emitter;
emitter << YAML::Binary("Hello, World!", 13);
std::cout << emitter.c_str();

выходы

--- !!binary "SGVsbG8sIFdvcmxkIQ=="

Синтаксис

YAML::Binary(const char *bytes, std::size_t size);

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

(Проблема в том, что uint8_t еще не является стандартным C ++, поэтому я немного беспокоюсь об его использовании.)

Что касаетсяПри разборе yaml-cpp, безусловно, будет анализировать данные в виде строки, но пока нет алгоритма декодирования.

1 голос
/ 15 мая 2016

Здесь дан ответ, как читать / анализировать двоичные данные из файла yaml с помощью библиотеки yaml-cpp.

В этом ответе предполагается, что вы можете загрузить объект узла YAML :: Node из файла yaml, - объяснено в руководствах по yaml-cpp: https://github.com/jbeder/yaml-cpp/wiki/Tutorial).

Код для разбора двоичных данных из узла yaml:

YAML::Binary binary = node.as<YAML::Binary>();
const unsigned char * data = binary.data();
std::size_t size = binary.size();

Тогда у вас есть массив байтов «data» с известным размером «size».

...