用TMemoryStream->loadfromfile 記憶體爆光了@@? |
尚未結案
|
kilik
一般會員 發表:2 回覆:1 積分:0 註冊:2004-04-11 發送簡訊給我 |
大家好:
我要寫一個網路傳送檔案的程式...目前傳送小檔案都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 發送簡訊給我 |
引言: //--------------- 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 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |