  | 
				VFP 愛用者社區 本討論區為 Visual Foxpro 愛用者經驗交流的地方, 請多多利用"搜尋"的功能, 先查看看有無前例可循, 如果還有不懂的再發問. 部份主題有附加檔案, 須先註冊成為社區居民才可以下載.   
				 | 
			 
		 
		 
	
		| 上一篇主題 :: 下一篇主題   | 
	 
	
	
		| 發表人 | 
		內容 | 
	 
	
		215001
 
 
  註冊時間: 2003-06-11 文章: 393
 
  第 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............... 
 
為什麼會這麼慢,可以改善速度嗎? | 
			 
		  | 
	 
	
		| 回頂端 | 
		 | 
	 
	
		  | 
	 
	
		朱育興
 
 
  註冊時間: 2003-08-25 文章: 661 來自: 台中市大里區
  第 2 樓
  | 
		 | 
	 
	
		| 回頂端 | 
		 | 
	 
	
		  | 
	 
	
		215001
 
 
  註冊時間: 2003-06-11 文章: 393
 
  第 3 樓
  | 
		
			
				 發表於: 星期六 一月 13, 2007 11:59 am    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				| 了解了,感謝朱兄 | 
			 
		  | 
	 
	
		| 回頂端 | 
		 | 
	 
	
		  | 
	 
	
		shyhpyng
 
  
  註冊時間: 2006-10-11 文章: 60 來自: 台南市
  第 4 樓
  | 
		
			
				 發表於: 星期一 一月 15, 2007 8:31 am    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				
 
 
幫忙轉過來  FROM   YSC5096
 
 
回復:同樣的程式,為什麼會這麼慢 
 
那是 FILETOSTR( ) 函數傳回給變數後,由於變數內容的大小愈來愈大,可能影響到記憶體的效率 (您可以觀察記憶體的使用狀況),檔案愈大速度就會明顯的下降到難以忍受的狀況 (我曾受夠這狀況了)。 
 
 
要把檔案當做一般文字檔來處理時,還是要用 FOPEN 低階函數的方式開啟,再利用迴圈去處理轉碼的問題,你會發現速度會大大的不同。 
 
 
FILETOSTR( ) 是很好的函數,但要用對地方,祝好運! | 
			 
		  | 
	 
	
		| 回頂端 | 
		 | 
	 
	
		  | 
	 
	
		smartHP
 
 
  註冊時間: 2005-05-17 文章: 10
 
  第 5 樓
  | 
		
			
				 發表於: 星期日 二月 04, 2007 12:32 pm    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				這個問題我有遇過,這個問題是出在filetostr是有一個限制的變數長度。
 
當讀入的資料長度大過於變數長度時vfp就會做分批轉換處理。
 
當時我遇到這個問題時查了help才知道原來是有長度上的限制。
 
就用了fopen。效能差了好幾倍 | 
			 
		  | 
	 
	
		| 回頂端 | 
		 | 
	 
	
		  | 
	 
	
		 | 
	 
 
  
  	 
	    
  	   | 
 	
您 無法 在這個版面發表文章 您 無法 在這個版面回覆文章 您 無法 在這個版面編輯文章 您 無法 在這個版面刪除文章 您 無法 在這個版面進行投票 您 無法 在這個版面附加檔案 您 無法 在這個版面下載檔案
  | 
   
  
		 |