C++处理本文文件

上一篇PHP的日志是讲从教学信息网站上读取课程信息

这一篇讲从某大资料里读取课程信息

 

这2份课程信息其实有很多重复之处,比如上课教师的姓名,什么学分,什么课号什么的……

这是必然,但每份都有自己的重要之处:

php抓取的那份里有选课的最大人数和已选课人数。这是选课时最重要的数据。

而c++处理的这份资料里有上课的时间和地点。地点倒无所谓,但是上课时间又是选课时的一个很重要的筛选条件——当然不能在有课的时候再选课喽~

 

c++要处理的这份资料也是从本科教学信息网上DOWN的(我说网络中心就不能再多做一步,把这种筛选的功能做出来么?!罢了,他做出来,我去做什么去。。。)

好在网络中心的很多资料都是公开的,比如2010-2011学年的所有课程,是可以下载下来的,格式有很多,什么xml,csv,xls还有pdf,tiff之类不会搞的东西。

 

最开始想的肯定是csv啦,这种亲文本的类型最适合我们这种亲手处理了。

事实上确实也好编。

于是做成这样就ok:

 

但是悲剧在于,csv虽然用逗号分隔内容,但是某些内容里竟然还有逗号(而且都是半角)……当然它这种逗号都是用双引号包围的,肯定能做成无视引号内逗号的,但是显然麻烦许多 。

 

于是我下载下来xls格式的,用excel打开,所里面的所有半角逗号都替换成全角逗号,之后再保存成csv,改名成txt……

之后再用WORD打开txt,把所有半角逗号全换成回车符"^p",这样的好处就是可以用getline()了……

 

于是最终的结果成了这样:

 

但是注意某些行竟然有200多个字符!所以小心越标,所以对于这种无所谓效率的小工具来说,还是开的内存大一点吧~~

最后说一点,处理的txt文件要保存成ansi编码,UTF8是不行的,至少c++一般的fstream是不支持的……

 

嗯,先说这么多。我觉得快编完了~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章