轉出bin檔 |
答題得分者是:aftcast
|
wa063
一般會員 發表:5 回覆:10 積分:3 註冊:2010-11-30 發送簡訊給我 |
請教各位先進,目前小弟我有定義以下數值...
char aa[8]= {0x00,0x40,0x05,0x00,0x01,0x01,0x00,0x01}; 想將 aa[8]內的0x00,0x40,0x05,0x00,0x01,0x01,0x00,0x01輸出bin檔,可以再開啟BIN檔程式顯示00 40 05 00 01 01 00 01之數值, 但小弟轉出來的BIN檔案,不是正確的BIN檔,請教如何轉出BIN檔?!感謝!! 程式碼如下: void __fastcall TForm1::Button2Click(TObject *Sender) { char aa[8]= {0x00,0x40,0x05,0x00,0x01,0x01,0x00,0x01}; Form1->Memo2->Clear(); AnsiString Test_String=""; for(int i=0;i<8;i ) { Test_String =aa[i]; } Form1->Memo2->Lines->Add(Test_String); Form1->Memo2->Lines->SaveToFile("C:\\TestBIN.txt"); } 編輯記錄
wa063 重新編輯於 2013-01-16 00:39:09, 註解 無‧
|
wa063
一般會員 發表:5 回覆:10 積分:3 註冊:2010-11-30 發送簡訊給我 |
有參考http://delphi.ktop.com.tw/board.php?cid=168&fid=913&tid=87768之方式,可解決我的問題了!!
修改程式碼如下: void __fastcall TForm1::Button2Click(TObject *Sender) { char Data[8] = {0x00,0x40,0x05,0x00,0x01,0x01,0x00,0x01}; TMemoryStream *ms = new TMemoryStream; ms->Write((char*)Data, 8); ms->SaveToFile("C:\\Data.bin"); delete ms; ms = NULL; } |
aftcast
站務副站長 發表:81 回覆:1485 積分:1763 註冊:2002-11-21 發送簡訊給我 |
[code cpp] void __fastcall TForm1::_btn1Click(TObject *Sender) { char aa[]= {0x00,0x40,0x05,0x00,0x01,0x01,0x00,0x01}; TMemoryStream *ms = new TMemoryStream; ms->Write(aa,sizeof(aa)); ms->SaveToFile("d:\\test3"); delete ms; } //--------------------------------------------------------------------------- void __fastcall TForm1::_btn2Click(TObject *Sender) { TMemoryStream *ms = new TMemoryStream; ms->LoadFromFile("d:\\test3"); AnsiString as; for (int i=0;i { as = as IntToHex(((char*)ms->Memory)[i],2) AnsiString(" "); } delete ms; this->_mmo1->Lines->Add(as); } //--------------------------------------------------------------------------- [/code] 以上bcb6完成。我一直改是因為…怎麼code貼出去都變成 html 的 CODE@@
------
蕭沖 --All ideas are worthless unless implemented-- C++ Builder Delphi Taiwan G+ 社群 http://bit.ly/cbtaiwan |
wa063
一般會員 發表:5 回覆:10 積分:3 註冊:2010-11-30 發送簡訊給我 |
|
aftcast
站務副站長 發表:81 回覆:1485 積分:1763 註冊:2002-11-21 發送簡訊給我 |
謝謝,是我回慢了,不過想說也許未來也有人有同樣的問題,所以還是貼了! ^^
此外,還有一個要注意的地方! 很重要,若你的二進位裡有大於等於0x80時,那個button click2的地方show的就會錯,所以,可以的話還是改成 as = as IntToHex(((unsigned char*)ms->Memory)[i],2) AnsiString(" "); 你可以試看看把 char aa[]= {0x00,0x40,0x05,0x00,0x01,0x01,0x00,0x80}; 就會知道我說的了! ^^ ===================引 用 wa063 文 章=================== 感謝aftcast 先進大大熱心解答,分數還是給您,非常感謝!!
------
蕭沖 --All ideas are worthless unless implemented-- C++ Builder Delphi Taiwan G+ 社群 http://bit.ly/cbtaiwan |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |