c中读取文本行的问题
现在有一个文件:内容如下:
<config>
[Func_Name] = mt_Alloc
[Input_Para_Number] = 6
<Param1>
[Nameflg] = 0
[Type] = MT_WORK
[Pointer] = 1
[Input] = 1;
</Param1>
<Param2>
[Nameflg] = 1
[Type] = MT_WORK
[Pointer] = 0
[Input] = 1
</Param2>
<Param3>
[Nameflg] = 2
[Type] = MT_INT32
[Pointer] = 0
[Input] = 1
</Param3>
<Param4>
[Nameflg] = 3
[Type] = MT_WORK
[Pointer] = 0
[Input] = 1
</Param4>
<Param5>
[Nameflg] = 4
[Type] = MT_RESULT
[Pointer] = 1
[Input] = 1
</Param5>
<Param6>
[Nameflg] = 5
[Type] = MT_WORK
[Pointer] = 1
[Input] = 0
</Param6>
</config>
<case:1-1-1>
[ppwork] = 1
[buf] = 1
[analyze_width] = 656
[analyze_height] = 528
[result] = 1
[work] = 1
[/work]
<nresult>
[nret_val] = 0
<eret_val>
[eret_flg] = 0
[eret_name] = null
[eret_type] = null
[eret_val] = 0
</eret_val>
</nresult>
</case:1-1-1>
其中有许多的case,这里只列举一个,请问如何从该文件中读出‘ppwork‘,‘buf’, 'analyze_width ', 'analyze_height ',注意,不是读这些变量的值,而是读它们的名字就可以了。如:[ppwork] = 1,只要读出 'ppwork '就好了。。
[解决办法]
是不是ini文件呀
[解决办法]
自己定義就自己解析各
[解决办法]
自己手工匹配就可以了。
<config> // config进栈
....
</config> // config出栈
<case:lable> // case:lable进栈
// 开始读取id
[ //下面是id
id1 // 读取id并保存
] // id结束
// 忽略以下字符串至遇到下一个[或者 </
...
[ // 遇到[继续读取下一个id,处理同上
< 超前读取下一个字符,如果下一个字符是/则读取后面的case:lable并且取栈顶的case:lable
比较两个是否匹配,匹配就出栈读取成功,否则出栈并报错。如果下一个字符不是/则继续向前读,直至遇到下一个[或者 <处理同上。