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是不支持的……

 

嗯,先說這麼多。我覺得快編完了~

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