首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

c中读取文本行的有关问题

2012-03-26 
c中读取文本行的问题现在有一个文件:内容如下:config[Func_Name]mt_Alloc[Input_Para_Number]6Param1

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
比较两个是否匹配,匹配就出栈读取成功,否则出栈并报错。如果下一个字符不是/则继续向前读,直至遇到下一个[或者 <处理同上。

热点排行