![VFP 愛用者社區 首頁](templates/subSilver/images/vfps.jpg) |
VFP 愛用者社區 本討論區為 Visual Foxpro 愛用者經驗交流的地方, 請多多利用"搜尋"的功能, 先查看看有無前例可循, 如果還有不懂的再發問. 部份主題有附加檔案, 須先註冊成為社區居民才可以下載.
|
上一篇主題 :: 下一篇主題 |
發表人 |
內容 |
215001
註冊時間: 2003-06-11 文章: 389
第 1 樓
|
發表於: 星期五 一月 12, 2007 9:29 pm 文章主題: 同樣的程式,為什麼會這麼慢 |
|
|
程式碼如下:
xstr1=FILETOSTR("test.dbf")
xstr2=""
FOR xi=1 TO LEN(xstr1)
xstr2=xstr2+SUBSTR(xstr1,xi,1) && 實際的程式是做轉碼處理
IF MOD(xi,100)=0
WAIT WINDOW STR(xi) NOWAIT NOCLEAR
ENDIF
NEXT
當 test.dbf 的檔案大小是 7000 bytes 時,閃一下,就跑完了(顯示7000)
當 test.dbf 的檔案大小是 1 MB 時,執行時,卻是 100..200..300..400..500..600..700..800..900...............
為什麼會這麼慢,可以改善速度嗎? |
|
回頂端 |
|
![](templates/subSilver/images/spacer.gif) |
朱育興
註冊時間: 2003-08-25 文章: 661 來自: 台中市大里區
第 2 樓
|
|
回頂端 |
|
![](templates/subSilver/images/spacer.gif) |
215001
註冊時間: 2003-06-11 文章: 389
第 3 樓
|
發表於: 星期六 一月 13, 2007 11:59 am 文章主題: |
|
|
了解了,感謝朱兄 |
|
回頂端 |
|
![](templates/subSilver/images/spacer.gif) |
shyhpyng
![](images/avatars/179265108746a85b150685c.jpg)
註冊時間: 2006-10-11 文章: 60 來自: 台南市
第 4 樓
|
發表於: 星期一 一月 15, 2007 8:31 am 文章主題: |
|
|
幫忙轉過來 FROM YSC5096
回復:同樣的程式,為什麼會這麼慢
那是 FILETOSTR( ) 函數傳回給變數後,由於變數內容的大小愈來愈大,可能影響到記憶體的效率 (您可以觀察記憶體的使用狀況),檔案愈大速度就會明顯的下降到難以忍受的狀況 (我曾受夠這狀況了)。
要把檔案當做一般文字檔來處理時,還是要用 FOPEN 低階函數的方式開啟,再利用迴圈去處理轉碼的問題,你會發現速度會大大的不同。
FILETOSTR( ) 是很好的函數,但要用對地方,祝好運! |
|
回頂端 |
|
![](templates/subSilver/images/spacer.gif) |
smartHP
註冊時間: 2005-05-17 文章: 10
第 5 樓
|
發表於: 星期日 二月 04, 2007 12:32 pm 文章主題: |
|
|
這個問題我有遇過,這個問題是出在filetostr是有一個限制的變數長度。
當讀入的資料長度大過於變數長度時vfp就會做分批轉換處理。
當時我遇到這個問題時查了help才知道原來是有長度上的限制。
就用了fopen。效能差了好幾倍 |
|
回頂端 |
|
![](templates/subSilver/images/spacer.gif) |
|
|
您 無法 在這個版面發表文章 您 無法 在這個版面回覆文章 您 無法 在這個版面編輯文章 您 無法 在這個版面刪除文章 您 無法 在這個版面進行投票 您 無法 在這個版面附加檔案 您 無法 在這個版面下載檔案
|
|