精華區beta Programming 關於我們 聯絡資訊
※ 引述《streitleak.bbs@aeug.twbbs.org (亞斯爾‧馮‧修特萊)》之銘言: > ※ 引述《LPH66.bbs@ptt.cc (運命のルーレット廻して)》之銘言: > > 其實我很好奇你是用什麼方法讀的... > strcpy(tmpstr,Main->StringList->Lines->Strings[i].c_str()); 依照你前面所說的,你是用sscanf將個別的field取出吧!? 如果是這樣,那麼這個strcpy()不就是多餘的了? 直接用 sscanf(Main->StringList->Lines->Strings[i].c_str(), "%d %d %d", &a, &b, &c); 這樣不就好了? 你的時間真的慢的有點誇張,我想你也許應該先想想如何把程式中多餘的程式碼移除。 另外,你用StringList可能會配置過多的記憶體然後將所有的資料讀入。 而且StringList還要花時間判斷換行字元。 總而言之,何不回歸到簡單一點的方法,直接用fscanf()呢? > > 明明什麼方法都不會慢到哪裡去... > > 還有你這個「一行一秒」的時間是怎麼得知的? > Main->Label->Caption=AnsiString(time(NULL)); 你是根據總共的時間除上資料筆數來當成每筆所需的時間嗎? 這樣的算法會有問題,也許你的程式該開始很快,到了後面因為記憶體的大量 配置,而變成一筆資料需要好幾秒也不一定阿? -- Gary W. Lee URL: http://www.dev.idv.tw/ A web site about C/C++, Tcl, Python, wxWidgets, UNIX/Linux, Windows ..., etc. -- ※ Origin: 元智大學 風之塔 <bbs.yzu.edu.tw> ※ From : 59-112-232-40.dynamic.hinet.net ※ X-Info: Re: 檔案分析問題 如何提升資料解析速度 ※ X-Sign: 11SEF6M8EMHke5tiQVoQ (06/01/13 13:38:30 )