上一篇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是不支持的……
嗯,先說這麼多。我覺得快編完了~