专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > C语言

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

发布时间:2011-06-28 16:13:52 文章来源:www.iduyao.cn 采编人员:星星草
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
比较两个是否匹配,匹配就出栈读取成功,否则出栈并报错。如果下一个字符不是/则继续向前读,直至遇到下一个[或者 <处理同上。
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: