读取混合文件的问题

yao7568183 2009-07-03 03:07:07
用MFC写的程序,读取一个文件,里面有字符又有二进制的数据,就像这样

...
beginaa
<</key1 value /key2 value...>> begin
经过编码的数据1
end
endaa

beginbb
<</key1 value /key2 value...>> begin
经过编码的数据2
end
endbb
...
...

请问我要怎么获得那些编码的数据呢,还有就是要把<<>>里的东西存储到自定义的对象里面去。文件内容并不像现在描述的这样很规则,有的字符之间的分隔符在记事本里面看不出来。我要怎么做,请教这里的前辈。先谢谢了。
...全文
84 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
yao7568183 2009-07-03
  • 打赏
  • 举报
回复
谢谢两位,已经初步解决了,谢谢~
Walf_ghoul 2009-07-03
  • 打赏
  • 举报
回复
先读出一定的数据进行分析,用栈存储标识符(如begin,end之类),遇到首位,将首位入栈,并存储之后的数据,遇到结束符弹出一个首尾并将其中的数据存入到对象中。(处理嵌套的数据)
baihacker 2009-07-03
  • 打赏
  • 举报
回复
貌似区别在于换行的转换吧...
既然这样,就只以二进制的方式读.
每次读一个BLOCK,然后分析,如果分析到beginaa之类的,开始把读的内容保存到一个缓冲区,直到分析到endaa的时候.
然后解析缓冲区的内容.

要注意的时候,可能一个beginaa到endaa的内容,分布在两个BLOCK中哟.

用一个变量来表示当前是不是在beginaa到endaa中,如果在,就保存,否则就查找beginaa,找到beginaa就进入保存状态,如果保存了一个endaa,则解析了一个数据,进入不在其中的状态,如此循环...

匹配一个beinaa 未匹配endaa
初始状态------------------>读取状态------------>到读取状态本身
<-------------------------
匹配endaa

64,644

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧