上一篇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是不支持的……
嗯,先说这么多。我觉得快编完了~