開啟檔案的問題 |
尚未結案
|
gqlv
一般會員 發表:18 回覆:10 積分:5 註冊:2003-07-23 發送簡訊給我 |
|
RaynorPao
版主 發表:139 回覆:3622 積分:7025 註冊:2002-08-12 發送簡訊給我 |
引言: 我是这样从一个文件读取数据到一缓冲区的: FileHandle = FileOpen("kk.bmp", fmOpenRead); FileSeek(iFileHandle,0,0); pszBuffer = new char[500]; iBytesRead =FileRead(iFileHandle, pszBuffer, 500); 我跟踪执行,发现读不到500(文件足够大),会不会是读入时遇到了什么字符停止了? 有什么解决办法呀?gqlv 你好: 試試改用 TMemoryStream class 來讀取檔案的內容吧 < class="code"> TMemoryStream *ms=new TMemoryStream; ms->LoadFromFile("kk.bmp"); // Do something..... delete ms; 備註: (1)建議你自行查詢 BCB Help 中有關 TMemoryStream class 的說明 (2)也可以利用本站的搜尋功能,就可以找到很多有關 TMemoryStream class 的 範例程式碼喔 > --
------
-- 若您已經得到滿意的答覆,請適時結案!! -- -- 欲知前世因,今生受者是;欲知來世果,今生做者是 -- -- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 -- |
brook
資深會員 發表:57 回覆:323 積分:371 註冊:2002-07-12 發送簡訊給我 |
1.假如檔案大於500,應該會讀進來500個bytes.
2.你可能要檢查kk.bmp是否存在,在該工作路徑內?要不然用絕對路徑試看看,如"c:\\kk.bmp"
3.檢查FileOpen傳回來的值是不是-1,假如FileHandle==-1,表示檔案不存在.
4.你怎麼知道讀進來的資料不到500bytes?檢查iBytesRead值?或直接看pszBuffer的內容,假如直接看pszBuffer的內容或strlen(pszBuffer)則有可能小於500,你應該檢查iBytesRead的值,表示讀進來的bytes數.
|
lostsuniverse
一般會員 發表:9 回覆:6 積分:3 註冊:2005-07-17 發送簡訊給我 |
|
haman
中階會員 發表:46 回覆:137 積分:56 註冊:2005-03-10 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |