需要解析一種類xml的資料檔案,資料格式1如下:
//資料域,多個
phi rcs ang12
3234
phi rcs ang34
5456
資料格式2:
#xtype//comment
[condition]
項1=值1
項2=值2
[/condition]
[mea]
key3=value3
key4=value4
[/mea]
[data]
phi rcs ang11
1222
[/data]
[data]
phi rcs ang31
1422
[/data]
該資料格式類似xml,我們需要解析的是head中的所有標籤,及標籤中的鍵值對(key=value),並將data域中的資料儲存成浮點型陣列。
採用類似xml的解析方式,遞迴進行解析
具體**如下:
#ifndef myparsegjbdata_h_20170114#define myparsegjbdata_h_20170114#include
#include
#include
#include
#include
#include
using
namespace
std;
/*file format1:phi rcs ang
1 1 1
2 2 2
*/typedef
struct
stmydatalabel
void
clear()
content.clear();
values.clear();
keyval.clear();
subitems.clear();
}friend ostream& operator
<<(ostream& myout,stmydatalabel&m_data)
myout
myout
int curdidx = 0
;
for(vector::iterator fitr = m_data.values.begin(); fitr != m_data.values.end(); fitr++)
}myout
return
myout;
}}stmydatalabel;
class
mydataparse
void
init()
}void print(ostream&myout)
bool parse(char*filename)
return
flag;
}bool parselabel(istream& myin,stmydatalabel&label)
else
continue
; }
else
}else
else
label.label =lablename;}}
else
else}}
else
else
//header
else}}
}while
(flag);
}//判斷字串是不是數字
bool isnum(string
str)
};/*
file format2:
#xtype
//comment
[condition]
項1=值1
項2=值2
[/condition]
[mea]
key3=value3
key4=value4
[/mea]
[data]
phi rcs ang
1 1 1
2 2 2
[/data]
*/class
mydataparse2
void
init()
void print(ostream&myout)
bool parse(char*filename)
bool flag = true
;
while(!myin.eof() &&flag)
return
flag;
}bool parselabel(istream& myin,stmydatalabel&label)
else
label.label =lablename;
}else
else}}
else
else
//header
else}}
}while(!myin.eof());
}};#endif
測試(命令列方式)
mydataparse parse;parse.init();
parse.parse(
"test.txt
");//待解析的
資料檔案
parse.print(cout);
測試資料:
phi rcs ang12
3234
phi rcs ang34
5456
//test12.txtphi rcs ang12
3234
phi rcs ang34
5456
//test21.txt
#xtype
//comment
[condition]
項1=值1
項2=值2
[/condition]
[mea]
key3=value3
key4=value4
[/mea]
[data]
phi rcs ang11
1222
[/data]
[data]
phi rcs ang31
1422
[/data]
//test22.txt
#xtype
//comment
[condition]
項1=值1
項2=值2
[/condition]
[group]
[part1]
key3=value3
[/part1]
[part2]
key4=value4
key5=value5
[/part2]
[/group]
[data]
phi rcs ang11
1222
[/data]
[data]
phi rcs ang31
1422
[/data]
資料格式解析(C )
資料格式解析 c 1.開發環境code blocks13.12,win7作業系統 2.實現功能 gps資料資訊型別常見的有6種 資訊型別 英文語義 中文語義 gprmc recommended minimum specific gps transit data rmc 推薦定位資訊 gpvtg tr...
YUV資料格式解析
文章 詳解yuv420資料格式 1.yuv簡介 yuv定義 分為三個分量,y 表示明亮度 luminance或luma 也就是灰度值 而 u 和 v 表示的則是色度 chrominance或chroma 作用是描述影像色彩及飽和度,用於指定畫素的顏色。yuv格式 有兩大類 planar和packed...
解析JSON資料格式
比起xml,json的主要優勢在於它的體積更小,在網路上傳輸的時候可以更省流量,但缺點在於,他的語義性較差,看起來不如xml直觀。官方提供的jsonobject谷歌開源庫的gson第三方開源庫,jackson fastjson 下面使用jsonobject和gson分別解析這組資料.private ...