線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1166
推到 Plurk!
推到 Facebook!

請問如何快速作超長字串的數量計算呢?

答題得分者是:timhuang
chiehmin
高階會員


發表:13
回覆:134
積分:134
註冊:2002-05-23

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-03-13 20:48:24 IP:211.75.xxx.xxx 未訂閱
假設一個純文字檔內容為連續字串..如下    01234dfdfdfdasdf......05678dasdfasdfasdfasdf.....09999asddafdsfasdfasf.....以此類推.... 上例共n組字串..前五碼為字串總長度....... 請問高手們我要如何才能快速計算出此文字檔共有幾組字串呢? 謝謝 用delete function來作會跑好幾十分鐘....
chih
版主


發表:48
回覆:1186
積分:639
註冊:2002-04-02

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-03-13 21:19:32 IP:61.216.xxx.xxx 未訂閱
01234dfdfdfdasdf......05678dasdfasdfasdfasdf.....09999asddafdsfasdfasf.....以此類推.... 紅色部分長度有固定嗎??
chiehmin
高階會員


發表:13
回覆:134
積分:134
註冊:2002-05-23

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-03-13 22:37:25 IP:218.187.xxx.xxx 未訂閱
是不固定長的囉... 以下例..第一字串總長1234...第二字串總長5678...第三字串總長9999...以此類推....有可能會有上千組字串囉......... 如果用repeat配合delete慢慢將字串刪掉來計算..不僅一開始開檔慢..計算也很慢哩....希望能有較快速的方法..........謝謝...    
引言: 01234dfdfdfdasdf......05678dasdfasdfasdfasdf.....09999asddafdsfasdfasf.....以此類推.... 紅色部分長度有固定嗎??
領航天使
站長


發表:12216
回覆:4186
積分:4084
註冊:2001-07-25

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-03-13 22:44:23 IP:210.202.xxx.xxx 未訂閱
引言: 是不固定長的囉... 以下例..第一字串總長1234...第二字串總長5678...第三字串總長9999...以此類推....有可能會有上千組字串囉......... 如果用repeat配合delete慢慢將字串刪掉來計算..不僅一開始開檔慢..計算也很慢哩....希望能有較快速的方法..........謝謝...
引言: 01234dfdfdfdasdf......05678dasdfasdfasdfasdf.....09999asddafdsfasdfasf.....以此類推.... 紅色部分長度有固定嗎??
要用二進位開檔的方式讀取 配合seek指令跳著讀才會快 ~~~Delphi K.Top討論區站長~~~
------
~~~Delphi K.Top討論區站長~~~
timhuang
尊榮會員


發表:78
回覆:1815
積分:1608
註冊:2002-07-15

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-03-13 22:52:45 IP:61.221.xxx.xxx 未訂閱
hi, 若是很大的檔案建議你不要讀入記憶體中. 直接利用 text file routines (或是 file management routines) 來進行, 在記憶體中反而會使得速度變慢, 尤其 是使用 delete , 因為會一直重覆配置記憶體與 釋放記憶體, 所以速度會慢... 請利用: (text file routines) AssignFile Read 或是 (file management routines) FileOpen FileSeek FileRead 來進行讀取檔案並分組!!
chiehmin
高階會員


發表:13
回覆:134
積分:134
註冊:2002-05-23

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-03-14 16:11:36 IP:61.221.xxx.xxx 未訂閱
再請教一下 FileOpen和FileClose在此情況下.. 是要開一次計算完再關檔好呢? 還是每一個回圈開關一次比較好?? 謝謝.....        
引言: hi, 若是很大的檔案建議你不要讀入記憶體中. 直接利用 text file routines (或是 file management routines) 來進行, 在記憶體中反而會使得速度變慢, 尤其 是使用 delete , 因為會一直重覆配置記憶體與 釋放記憶體, 所以速度會慢... 請利用: (text file routines) AssignFile Read 或是 (file management routines) FileOpen FileSeek FileRead 來進行讀取檔案並分組!!
發表人 - chiehmin 於 2003/03/14 16:13:28
timhuang
尊榮會員


發表:78
回覆:1815
積分:1608
註冊:2002-07-15

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-03-14 18:24:53 IP:211.76.xxx.xxx 未訂閱
引言: 再請教一下 FileOpen和FileClose在此情況下.. 是要開一次計算完再關檔好呢? 還是每一個回圈開關一次比較好?? 謝謝.....
開一次計算完再關即可. 不需要開開關關的. 你維護的只是一個 file handle, 其中有指向 檔案的指標而已, 所以會比原來整個 load 進 記憶體來得快!!
系統時間:2024-05-13 15:39:20
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!