//序列没有标签
CvMemStorage *mem = cvCreateMemStorage(0);
CvFileStorage *file = cvOpenFileStorage("e:\\123.yml", mem, CV_STORAGE_READ | CV_STORAGE_WRITE);
cvStartWriteStruct(file, NULL, CV_NODE_SEQ ); cvWriteInt(file, NULL, 123);//写入的是序列,名称都为NULL
cvWriteReal(file, NULL, 32.0);
cvWriteString(file, NULL, "123123"); int dbData[5] = {12, 3, 0, 5, 8};
const string strType = "i";
cvWriteRawData(file, dbData, 5, strType.c_str());
cvWriteComment(file, "my comment", 0);//把注释写在该行的后面 CvFileNode *node = cvGetRootFileNode(file, 0);
if (node != NULL){
printf("%s\n", node->data.str.ptr);
} cvEndWriteStruct(file);
cvReleaseFileStorage(&file);
cvReleaseMemStorage(&mem);

可以看出序列写文件没有节点

CvMemStorage *mem = cvCreateMemStorage(0);
CvFileStorage *file = cvOpenFileStorage("e:\\123.xml", mem, CV_STORAGE_READ | CV_STORAGE_WRITE);
cvStartWriteStruct(file, "UserInfo", CV_NODE_MAP ); cvWriteInt(file, "Integer", 123);//写入的是序列,名称都为NULL
cvWriteReal(file, "Real", 32.0);
cvWriteString(file, "String", "123123"); cvWriteComment(file, "my comment", 0);//把注释写在该行的后面
cvEndWriteStruct(file); cvReleaseFileStorage(&file);
cvReleaseMemStorage(&mem);

如果是MAP,就可以了

代码如下

CvMemStorage *mem1 = cvCreateMemStorage(0);
CvFileStorage *file1 = cvOpenFileStorage("e:\\123.xml", mem1, CV_STORAGE_READ); CvStringHashNode *hashNode = cvGetHashedKey(file1, "UserInfo", strlen("UserInfo"));
CvFileNode *node1 = cvGetFileNode(file1, NULL, hashNode);
if (node1 != NULL){//获取根节点名称
printf("%s\n", cvGetFileNodeName(node1));
} hashNode = cvGetHashedKey(file1, "Real", strlen("Real"));
CvFileNode *nodeReal = cvGetFileNode(file1, node1, hashNode);
if (nodeReal != NULL){//获取子节点名称
printf("%s\n", cvGetFileNodeName(nodeReal));
printf("%d\n", cvReadInt(nodeReal));
} hashNode = cvGetHashedKey(file1, "Integer", strlen("Integer"));
CvFileNode *nodeInteger = cvGetFileNode(file1, node1, hashNode);
if (nodeInteger != NULL){//获取子节点名称
printf("%s\n", cvGetFileNodeName(nodeInteger));
printf("%d\n", cvReadInt(nodeInteger));
} hashNode = cvGetHashedKey(file1, "String", strlen("String"));
CvFileNode *nodeString = cvGetFileNode(file1, node1, hashNode);
if (nodeString != NULL){//获取子节点名称
printf("%s\n", cvGetFileNodeName(nodeString));
printf("%s\n", cvReadString(nodeString));
} printf("\n");
printf("%f\n", cvReadRealByName(file1, node1, "Real"));//根据标签名获取值
printf("%s\n", cvReadStringByName(file1, node1, "String"));
printf("%d\n", cvReadIntByName(file1, node1, "Integer")); cvReleaseFileStorage(&file1);
cvReleaseMemStorage(&mem1);

版权声明:本文为博主原创文章,未经博主允许不得转载。

最新文章

  1. 被滥用的for in循环
  2. iPhone4下window各个部分的高度
  3. Android gdb 调试
  4. Android 长按Listview显示CheckBox,实现批量删除。
  5. Android开发中Bundle用法包裹数据(转)
  6. BZOJ4417: [Shoi2013]超级跳马
  7. 转载网页博客:ie7bug:div容器下的img与div存在间隙
  8. delphi execCommand
  9. 编程语言大牛王垠:编程的智慧,带你少走弯路 [本文转载CocoaChina]
  10. tomcat+redis实现session共享缓存
  11. 做为一个Java程序员,你需要哪些傍身的技能?
  12. mongoDB之数据类型
  13. 清北学堂Day2
  14. 爬虫之re数据提取的使用
  15. JAVA版开源微信管家—JeeWx捷微3.2版本发布,支持微信公众号,微信企业号,支付窗、小程序
  16. jquery ajax 中实现给变量赋值
  17. 20145232 《Java程序设计》课程总结
  18. Unity 屏幕外死亡的敌人的分数显示在屏幕内
  19. python装饰器、继承、元类、mixin,四种給类动态添加类属性和方法的方式(一)
  20. 4款最受欢迎的Mac原型工具

热门文章

  1. VUE 父子组件之间通信传值 props和 $emit
  2. 解题报告:luogu P1144 最短路计数
  3. SystemVerilog基本语法总结(上)
  4. idea中如何将一个普通项目转换为maven项目
  5. luogu P2765 魔术球问题
  6. 解决dotnet-Angular的跨域(cors)问题
  7. leetcode844 Backspace String Compare
  8. HTML学习第七天(二)
  9. CSS样式表——格式与选择器
  10. 嵊州普及Day2T1