Pregunta

¿Es posible emitir y leer (análisis sintáctico) de datos binarios (imagen, archivo, etc)? Como esto se muestra aquí: http://yaml.org/type/binary.html ¿Cómo puedo hacer esto en yaml-CPP?

¿Fue útil?

Solución

A partir de la revisión 425 , sí! (Para la emisión)

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

salidas

--- !!binary "SGVsbG8sIFdvcmxkIQ=="

La sintaxis es

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

No estaba segura de cómo pasar la matriz de bytes: char no es necesariamente un byte, así que no estoy seguro de cómo portátil es el algoritmo. ¿Qué formato es su matriz de bytes típicamente en?

(El problema es que no es uint8_t C ++ estándar, sin embargo, así que estoy un poco preocupado acerca de su uso.)

Como para el análisis, sin duda yaml-cpp analizar los datos como una cadena, pero no hay algoritmo de decodificación todavía.

Otros consejos

A continuación se responde a leer / datos binarios de análisis sintáctico de un archivo YAML con la biblioteca yaml-CPP.

Esta respuesta supone que son capaces de cargar un objeto de nodo YAML :: nodo de un archivo YAML - se explica en los tutoriales yaml-cpp: https://github.com/jbeder/yaml-cpp/wiki/Tutorial ).

El código para analizar los datos binarios desde un nodo yaml es:

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

A continuación, tiene una matriz de bytes de datos "" con un tamaño conocido "tamaño".

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top