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

用TMemoryStream->loadfromfile 記憶體爆光了@@?

尚未結案
kilik
一般會員


發表:2
回覆:1
積分:0
註冊:2004-04-11

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-05-17 23:10:44 IP:140.113.xxx.xxx 未訂閱
大家好: 我要寫一個網路傳送檔案的程式...目前傳送小檔案都ok了 , 但是.... 我用TMemoryStream 的 loadfromfile這個Method 去讀取電腦裡面一個7百多MB的檔案 , 可是我的記憶體大小只有512MB , 結果程式一下去執行 , 記憶體馬上就被吃光了@@... 害我要關程式就當在那 .... 連關都等超久... 請問有什麼方法有可分段讀那個檔案嗎 ?? 我有試過去設定 Size 大小 , 可是之後loadfromfile那個檔案 , 記憶體還是被用光光@@... 謝謝各位指導 ^^ 我是這樣寫 //--------------- TMemoryStream *m = new TMemoryStream; m->size = 10240; m->LoadFromFile(file); //---------------
anpino
版主


發表:31
回覆:477
積分:231
註冊:2003-01-02

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-05-18 09:27:21 IP:211.23.xxx.xxx 未訂閱
引言: //--------------- TMemoryStream *m = new TMemoryStream; m->size = 10240; m->LoadFromFile(file); //---------------
吼~~~ 要記憶體生出10240的連續空間未免太殘忍了吧... 請用標準i/o分段取檔, 用fseek設定position, 用fread讀檔(從fseek設定的position開始讀檔,讀入的長度自訂)。 詳見msdn。 ------------------------------- 數學系是內功很強(邏輯/分析) 資工系是招式很多(程式技巧) 就像令狐沖
kilik
一般會員


發表:2
回覆:1
積分:0
註冊:2004-04-11

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-05-18 21:32:05 IP:140.113.xxx.xxx 未訂閱
恩 ... 謝謝你的解答 ^^ 我瞭解應該如何作了 ~ 感恩 T_T ~~
系統時間:2024-05-13 3:59:20
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!