※ 引述《previewslave@kkcity.com.tw》之銘言:
> ※ 引述《streit.bbs@aeug.twbbs.org (亞斯爾‧馮‧修特萊)》之銘言:
> > 這是電信相關的 不同間的電信都會有LOG互相比對
> > 來確定對方有沒有多加秒數多收錢
> > 現在兩家的LOG要互相比對 我設計一個STRUCT去把需要比對的資料分析後放進去
> > 內容大致上是 電話號碼 通話開始時間 通話結束時間 通話秒數 等等幾項
> > 現在問題是光將檔案約61萬筆資料讀到陣列中
> > 每筆就要花一秒的時間 61萬筆就要花掉166個小時以上 約6天半
> > 這樣效率實在是很差 是否有更快速的方式可以將資料丟到陣列中呢?
> > 語言是C/C++ 工具BCB 檔案內容會先放到StringList中
> > 再逐一從StringList中拉出來一個一個分析
> 先撇開技術不談,這是一個有問題的題目。
> 因為基本上所有電信業者是站在同一陣線的,
> 因此只要雙方協調好就能夠吃死消費者。
> 就單純技術問題來說,一筆資料就要花一秒的時間,這實在是太誇張了。
> 你用的是 AppleII 電腦嗎?還是打孔機?
> 另外,有一個疑問是,當某甲打電話給某乙時,
> 是否一定會有 A 公司傳遞訊息給 B 公司呢?
> 還是說兩家公司能夠同時接收通話雙方的通訊內容?
> 如果是前者,那麼問題就不存在。
基本上消費者也不可能有61萬筆資料
跑得PC是用P4 2.4G Celeron 1G RAM 在Treminal Services模式下
不論在上班或下班後 每筆都要花1秒的時間才能解析到STRUCT中
LOG內容大約解釋一下
電話號碼 來源簡稱 開始時間 結束時間 秒數
%20s %30s %19s %19s %7d
檔案內大約是這個格式 先讀到StringList後
再把他丟到一個512大小的Char陣列中 用sscanf丟到一些變數
時間會丟給tm然後用mktime轉成time_t 秒數是INT 電話號碼放到char陣列中
--
◤◥ Origin: 幽谷˙反地球聯邦組織 aeug.twbbs.org
◣◢ Author: streit 從 anime.animemusic.idv.tw 發表