精華區beta Programming 關於我們 聯絡資訊
※ 引述《garylee.bbs@bbs.yzu.edu.tw (www.dev.idv.tw)》之銘言: > ※ 引述《streitleak.bbs@aeug.twbbs.org (亞斯爾‧馮‧修特萊)》之銘言: > > 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)); > 你是根據總共的時間除上資料筆數來當成每筆所需的時間嗎? > 這樣的算法會有問題,也許你的程式該開始很快,到了後面因為記憶體的大量 > 配置,而變成一筆資料需要好幾秒也不一定阿? 每個strcpy跟sscanf都放一個time() 每個都一樣 另外我有把現在跑到哪一行都秀出來 確實是一秒一個 -- Origin: 幽谷˙反地球聯邦組織 aeug.twbbs.org Author: streitleak211-20-33-61.HINET-IP.hinet.net 發表