各位大大.........一個讀取.bin檔的問題? |
尚未結案
|
kevinhue
一般會員 發表:23 回覆:42 積分:13 註冊:2003-05-06 發送簡訊給我 |
|
turboted
版主 發表:95 回覆:754 積分:452 註冊:2002-07-23 發送簡訊給我 |
TMemoryStream *TMS=new TMemoryStream();
char *pt;
String kk,buffer;
TMS->Size=131072;
TMS->LoadFromFile(OpenDlg->FileName);
TMS->Size; //你可以看一下,問題在這裏時,檔案大小還是對的
//也就是說,檔案是有正確讀進來的,問是在於你下面轉換時的問題
pt=(BYTE *)TMS->Memory;
kk=pt;
buffer = kk;
delete TMS;
|
kevinhue
一般會員 發表:23 回覆:42 積分:13 註冊:2003-05-06 發送簡訊給我 |
|
Justmade
版主 發表:94 回覆:1934 積分:2030 註冊:2003-03-12 發送簡訊給我 |
|
lcsboy
版主 發表:87 回覆:622 積分:394 註冊:2002-06-18 發送簡訊給我 |
引言: 各位大大你好: 以下的程式是我想要讀一個.bin檔的程式,可是讀出來之後的值卻不見了, 比如說:有一筆資料02 01 00 FF FF FF 03 02 10是這樣的,但是讀到TMS之後 就只剩02 01兩筆資料..........???怎麼會這樣勒???可以麻煩各位大大 幫我看看好嗎??? >>>>>>< face="Verdana, Arial, Helvetica"> 以上結果完全合理, 但是可能你一時沒有想到 Q:還記得C的字串以什麼作結尾嗎? ^^ A: 沒錯, 就是NULL =>就是 '\0'=> 也就是Hex的0x00, Do you remember? 02 01 00 FF FF FF 03 02 10 所以很自然的, 因為你宣告String kk,buffer; 強制把kk, buffer都當成AnsiString-->也就是字串-->也就是說遇到'\0'就要終止 於是乎 02 -> 01 -> 00 !!! Bingo, 遇到'\0' 終止往後讀取 這樣子了解JustMade的意思了吧 < > >>> <---是多餘的< > |
turboted
版主 發表:95 回覆:754 積分:452 註冊:2002-07-23 發送簡訊給我 |
|
kevinhue
一般會員 發表:23 回覆:42 積分:13 註冊:2003-05-06 發送簡訊給我 |
|
lcsboy
版主 發表:87 回覆:622 積分:394 註冊:2002-06-18 發送簡訊給我 |
|
kevinhue
一般會員 發表:23 回覆:42 積分:13 註冊:2003-05-06 發送簡訊給我 |
各位大大你好:
下面的程式是可以做到我想要的,但是,有一個問題,有沒有辦法在開啟檔案的時候,可以抓到檔案的長度...........
TMS->LoadFromFile(OpenDlg->FileName);
TMS->Size=buff;
pt=(BYTE *)TMS->Memory;
for (int i=0; i< buff; i )
{
buffer=buffer *(pt );
Application->ProcessMessages();
}
delete TMS;
} kevinhue
|
taishyang
站務副站長 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
|
kevinhue
一般會員 發表:23 回覆:42 積分:13 註冊:2003-05-06 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |