2013-03-19 84 views
1

喜大家,如何将二进制数据的缓冲区传递给xml?

  • 我有一个包含二进制数据(的超过1G大小)的缓冲...
  • 该二进制数据指出,通过的“指针Ipp16s“(英特尔数据类型为”short“)...
  • 指针仅指向缓冲区的第一个元素,而不指向所有缓冲区(正如我在调试时被告知和检查自己)) ...
  • 最终,我想适合整个缓冲区到一个XML ...
  • 我已经建立的XML格式,它正在通过模拟值时...
  • 所以,我认为两种解决方案:

    1. 插入单值一个接一个(使用一个for循环)插入 XML(这是非常简单的方法但低效的这么多 原因)

    2. 编码(以某种方式)的缓冲液(及其所有内容) 之前经编码缓冲器注入XML (这种方法听起来很复杂, 但更合乎逻辑)

我的问题是:如何将这个缓冲区编码(二进制数据)转换成XML?

顺便说一句,我是新来的c + +和Qt-Creator工作。

预先感谢您的帮助,

回答

0

我一般用base64编码。我相信你可以找到一个已经写好的实现,或者如果它有吸引力,你可以自己写。

+0

**感谢您的回复... ** 后,我通过base64编码读,我发现这个网站:(http://cplusplus.com/forum/初学者/ 51572) 然而,实现集中在仅传递字符串值。 **我更关心传递指向缓冲区(包含二进制数据)的指针**。 我看不到如何使用base64实现! – 2013-03-21 12:18:35

+0

无论您是从字符串,缓冲区还是从文件进行编码,base64编码都是相同的。总是你编码的字节,你得到的字节只是一个细节。这是一个实现,从缓冲区编码http://www.adp-gmbh.ch/cpp/common/base64.html – john 2013-03-21 15:42:21

+0

你的例子和我的一样。就是这样:我必须在将“s”传递给编码器之前将char值放到变量“s”中(并且因为没有它,我只有一个指针)所以我不能传递我的缓冲区。另一件事,代码传递“s”作为char的一个长度缓冲区,并且我想传递一个只指向缓冲区中包含“short”值的第一个元素的指针。我真的被卡住了! – 2013-03-21 15:56:12

相关问题