VFP 愛用者社區 首頁 VFP 愛用者社區
本討論區為 Visual Foxpro 愛用者經驗交流的地方, 請多多利用"搜尋"的功能, 先查看看有無前例可循, 如果還有不懂的再發問. 部份主題有附加檔案, 須先註冊成為社區居民才可以下載.
 
 常見問題常見問題   搜尋搜尋   會員列表會員列表   會員群組會員群組   會員註冊會員註冊 
 個人資料個人資料   登入檢查您的私人訊息登入檢查您的私人訊息   登入登入

請問執行VFP程式,WINXP不會跳出記憶體不足,WIN7會。

 
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> VFP 討論區
上一篇主題 :: 下一篇主題  
發表人 內容
Ian.wang



註冊時間: 2012-09-20
文章: 20


第 1 樓

發表發表於: 星期四 七月 07, 2016 3:44 pm    文章主題: 請問執行VFP程式,WINXP不會跳出記憶體不足,WIN7會。 引言回覆

各位前輩你們好
我有段程式碼

C10 = FileToStr("&DTD.&TFN.01.Txt")
C10 = StrTran(C10,"\n",Chr(13))
StrToFile(C10,"&DTD.&TFN.02.Txt")

於XP下執行沒有異常,但在WIN7 64BIT卻在...
C10 = FileToStr("&DTD.&TFN.01.Txt")
發生記憶體不足的錯誤

後來上網查有篇文章用FOpen , FGets,所以我改寫成...
C10 = FGets(F10,999)
C11 = C11 + C10
最後才
StrToFile(C11,"&DTD.&TFN.02.Txt")

結果WIN7 64BIT在執行的過程直接跳出記憶體不足
我猜是C11 = C11 + C10出問題,疑似C11過大導致記憶體不足
我查看C11的長度到3870564就發生錯誤了
有時長度到1百多萬的時候就又發生錯誤了
這狀況用WinXP執行都沒有問題
不知道問題出在哪裡...

PS : 目前有個想法是處理一行輸出一行(FPuts)
回頂端
檢視會員個人資料 發送私人訊息
ckp6250



註冊時間: 2004-07-30
文章: 1644


第 2 樓

發表發表於: 星期四 七月 07, 2016 5:38 pm    文章主題: 引言回覆

vfp help中寫著

每個字串中字元數或記憶體變數的最大值。 16,777,184

剛試了一下
filetostr 或 strtofile , 40M的文字檔, 讀寫都沒問題
回頂端
檢視會員個人資料 發送私人訊息 參觀發表人的個人網站
bx1166



註冊時間: 2011-12-06
文章: 273


第 3 樓

發表發表於: 星期四 七月 07, 2016 6:26 pm    文章主題: 引言回覆

既然有機會讀到很大的檔案

分段讀入是比較保險的方法

因為你有義務去避免這個狀況的出現
回頂端
檢視會員個人資料 發送私人訊息
ckp6250



註冊時間: 2004-07-30
文章: 1644


第 4 樓

發表發表於: 星期四 七月 07, 2016 9:30 pm    文章主題: 引言回覆

補充說明一下
我的電腦記憶體很大很大
回頂端
檢視會員個人資料 發送私人訊息 參觀發表人的個人網站
Ian.wang



註冊時間: 2012-09-20
文章: 20


第 5 樓

發表發表於: 星期一 七月 11, 2016 9:47 am    文章主題: 引言回覆

謝謝各位前輩的回覆
回頂端
檢視會員個人資料 發送私人訊息
從之前的文章開始顯示:   
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> VFP 討論區 所有的時間均為 台北時間 (GMT + 8 小時)
1頁(共1頁)

 
前往:  
無法 在這個版面發表文章
無法 在這個版面回覆文章
無法 在這個版面編輯文章
無法 在這個版面刪除文章
無法 在這個版面進行投票
無法 在這個版面附加檔案
無法 在這個版面下載檔案


Powered by phpBB © 2001, 2005 phpBB Group
正體中文語系由 phpbb-tw 維護製作