精華區beta Programming 關於我們 聯絡資訊
※ 引述《streit.bbs@aeug.twbbs.org (亞斯爾‧馮‧修特萊)》之銘言: : 這是電信相關的 不同間的電信都會有LOG互相比對 : 來確定對方有沒有多加秒數多收錢 : 現在兩家的LOG要互相比對 我設計一個STRUCT去把需要比對的資料分析後放進去 : 內容大致上是 電話號碼 通話開始時間 通話結束時間 通話秒數 等等幾項 : 現在問題是光將檔案約61萬筆資料讀到陣列中 : 每筆就要花一秒的時間 61萬筆就要花掉166個小時以上 約6天半 : 這樣效率實在是很差 是否有更快速的方式可以將資料丟到陣列中呢? : 語言是C/C++ 工具BCB 檔案內容會先放到StringList中 : 再逐一從StringList中拉出來一個一個分析 你的問題應該是出在比對問題 因為, 我每個月有 10 分鐘都在跟你做一樣的事 配備 P4 1.7G 1G RAM, 資料每個月 100 萬筆以上 (同為結尾 '\n' 的 CDR LOG) 解析速度每秒千筆以上 (還包含連接資料庫套用費率表/產生客戶通話明細 ... 等) 不過, 話說回來, 除非兩邊的機器計時有同步, 產生的 CDR 的通話間隔時間才會剛剛好 不然, 精準比對通話時間是 "無意義" 的事, 因為接通/掛斷一定會有秒差 所以, 要看有沒有多收錢 1.算兩邊總價, 而兩邊總價差額在雙方契約容許誤差下, 就可以不用 care 了 自行吸收即可 2.如果 CDR LOG 有價格, 算通話秒數再套用你們雙方談好的費率, 最後比對價錢即可 問題資料再額外抓出來存檔, 其速度還比上述解析(產生客戶通話明細)還要快上許多 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.67.4.232