當前位置:首頁 » 辦公資訊 » mfc怎樣讀取十六進制文件

mfc怎樣讀取十六進制文件

發布時間: 2023-03-16 07:17:03

❶ 在MFC中怎樣將整數轉化為16進制的數並寫入到文件中去

寫入一般文件(專做儲存用)無需保存為16進制坦毀格式,直接將整數寫入即可,這樣是最節省空間的,讓慎備如果要顯示為字元串的話,可以先格式化字孝孫符串(用_stprintf_s()函數, 格式化格式為'%x'),然後將字元串寫入到文本文件中去。

❷ MFC編輯框16進制字元串輸入問題

讀取輸入框內容,保存到buf中
然後寫個函數調用處理,把都到的內容轉化成十六進制

❸ MFC程序在示例編輯框上顯示十六進制

你的方法正確的鬧冊散,三個錯誤的都是一個錯誤造成的。strTemp寫成了strtemp,就在紅色波液氏浪線的姿洞位置

❹ 請問在VC++編程中,如何讓MFC編輯框知道輸入的數是16進制的

建議在編輯框前面加2個單選框,十進制晌芹和十六進制碼謹則的,默認為十六進制。選擇十進制的遲棚話,在程序里自己轉換成十六進制的數據使用,這樣就能很好的解決這個問題了。

❺ MFC 將文本框內容轉為十六進制的字元串

你看看這個是不是你要的:

發送十六進制字元
在主對話框中加入一個復選接鈕,ID為IDC_CHECK_HEXSEND Caption: 十六進制發送,再利用ClassWizard為其添加控制變數:m_ctrlHexSend;
在ClassView中為SCommTestDlg類添加以下兩個PUBLIC成員函數,並輸入相應代碼;

//由於這個轉換函數的格式限制,在發送框中的十六制字元應該每兩個字元之間插入一個空隔
//如:A1 23 45 0B 00 29
//CByteArray是一個動態位元組數組,可參看MSDN幫助
int CSCommTestDlg::String2Hex(CString str, CByteArray &senddata)
{
int hexdata,lowhexdata;
int hexdatalen=0;
int len=str.GetLength();
senddata.SetSize(len/2);
for(int i=0;i<len;)
{
char lstr,hstr=str[i];
if(hstr==' ')
{
i++;
continue;
}
i++;
if(i>=len)
break;
lstr=str[i];
hexdata=ConvertHexChar(hstr);
lowhexdata=ConvertHexChar(lstr);
if((hexdata==16)||(lowhexdata==16))
break;
else
hexdata=hexdata*16+lowhexdata;
i++;
senddata[hexdatalen]=(char)hexdata;
hexdatalen++;
}
senddata.SetSize(hexdatalen);
return hexdatalen;
}

//這是一個將字元轉換為相應的十六進制值的函數
//好多C語言書上都可以找到
//功能:若是在0-F之間的字元,則轉換困野為相應的十六進制字元,否則返回-1
char CSCommTestDlg::ConvertHexChar(char ch)
{
if((ch>='0')&&(ch<='9'))
return ch-0x30;
else if((ch>='A')&&(ch<='F'))
return ch-'A'+10;
else if((ch>='a')&&(ch<='f'))
return ch-'a'+10;
else return (-1);
}

再將CSCommTestDlg::OnButtonManualsend()修改成以下形式:
void CSCommTestDlg::OnButtonManualsend()
{
// TODO: Add your control notification handler code here
UpdateData(TRUE); //讀取編輯框內容
if(m_ctrlHexSend.GetCheck())
{
CByteArray hexdata;
int len=String2Hex(m_strTXData,hexdata); //數尺指此處返回的len可以用於計算發送了多少個十六進制數
m_ctrlComm.SetOutput(COleVariant(hexdata)); //發送十六進制數據
}
else
m_ctrlComm.SetOutput(COleVariant(m_strTXData));//發送ASCII字元數據

}
現在,你先將串口線接好並打開薯配串口調試助手V2.1,選上以十六制顯示,設置好相應串口,然後運行我們這個程序,在發送框中輸入00 01 02 03 A1 CC等十六進制字元,並選上以十六進制發送,單擊手動發送,在串口調試助手的接收框中應該可以看到00 01 02 03 A1 CC了。

9.在接收框中以十六進制顯示
這就容易多了: 在主對話框中加入一個復選接鈕,IDC_CHECK_HEXDISPLAY Caption: 十六進制顯示,再利用ClassWizard為其添加控制變數:m_ctrlHexDiaplay。 然後修改CSCommTestDlg::OnComm()函數:
void CSCommTestDlg::OnComm()
{
// TODO: Add your control notification handler code here
VARIANT variant_inp;
COleSafeArray safearray_inp;
LONG len,k;
BYTE rxdata[2048]; //設置BYTE數組 An 8-bit integerthat is not signed.
CString strtemp;
if(m_ctrlComm.GetCommEvent()==2) //事件值為2表示接收緩沖區內有字元
{
variant_inp=m_ctrlComm.GetInput(); //讀緩沖區
safearray_inp=variant_inp; //VARIANT型變數轉換為ColeSafeArray型變數
len=safearray_inp.GetOneDimSize(); //得到有效數據長度
for(k=0;k<len;k++)
safearray_inp.GetElement(&k,rxdata+k);//轉換為BYTE型數組
for(k=0;k<len;k++) //將數組轉換為Cstring型變數
{
BYTE bt=*(char*)(rxdata+k); //字元型
if(m_ctrlHexDisplay.GetCheck())
strtemp.Format("%02X ",bt); //將字元以十六進制方式送入臨時變數strtemp存放,注意這里加入一個空隔
else
strtemp.Format("%c",bt); //將字元送入臨時變數strtemp存放

m_strRXData+=strtemp; //加入接收編輯框對應字元串
}
}
UpdateData(FALSE); //更新編輯框內容
}
測試:在串口調試助手發送框中輸入00 01 02 03 A1 CC等十六進制字元,並選上以十六進制發送,單擊手動發送,在本程序運行後選上以十六進制顯示,在串口調試助手中單擊手動發送或自動發送,則在本程序的接收框中應該可以看到00 01 02 03 A1 CC了。
留個郵箱我把原文給你

❻ MFC 如何將文本文件的內容以16進制顯示

BYTE buf[100]={0};
FILE *pFile=fopen("純猛賀做派a.txt","rb");
if(pFile)
{
fread(buf,1,100,pFile);
CString Str;
for(int i=0;i<知扮100;++i)
{
Str.Format(TEXT("%02X"),buf[i]);//得到對應16進製表示.
OutputDebugString(Str);
}
fclose(pFile);
}

❼ 如何讀取十六進制文件

以十六進制查看文件的軟體有很多,比如:WinHEX可以打開文件以十六進制形式查看行源禪;

十六進制(英文名稱:Hexadecimal),是計算機中數據的一種表檔塵示方法。同我們裂攔日常生活中的表示法不一樣。它由0-9,A-F組成,字母不區分大小寫。與10進制的對應關系是:0-9對應0-9;A-F對應10-15;N進制的數可以用0~(N-1)的數表示,超過9的用字母A-F。

❽ mfc 怎樣把.dat文件的一個十六進制數寫到txt文件中

涉及笑稿函數三個:
CFile::Open
CFile::Read
CFile::Write
網神升皮上搜索「CFile 二進制」會得到游差大量示例。

❾ mfc如何讀取十六進制文件

這是讀取16進制的文件,一定要通過轉換器來完

❿ 急!!!請vc++高手給個mfc讀出文件十六進制的代碼

0到9: ASCII 值是 0x30...0x39,孫亂所以 ch - 0x30 就正好是正確的權。

A到F: 用 ch 的 ASCII 值減去 A 的 ASCII 值,就相當於 A到F 變成了 0到5,要加 10 才是正確桐弊的權,因為十六進制里 A=10...F=15,所以就有了 ch - 'A' + 10 這個演算法。這里的則輪檔 'A' 是 ASCII 值。

a到f: 同上。

熱點內容
馬路上汽車的噪音在多少分貝 發布:2023-08-31 22:08:23 瀏覽:1885
應孕棒多少錢一盒 發布:2023-08-31 22:08:21 瀏覽:1358
標准養老金一年能領多少錢 發布:2023-08-31 22:05:05 瀏覽:1645
湖北通城接網線多少錢一個月 發布:2023-08-31 21:59:51 瀏覽:1724
開隨車吊車多少錢一個月 發布:2023-08-31 21:55:06 瀏覽:1486
京東付尾款怎麼知道前多少名 發布:2023-08-31 21:52:58 瀏覽:1809
在學校租鋪面一個月要多少錢 發布:2023-08-31 21:52:09 瀏覽:1948
2寸有多少厘米 發布:2023-08-31 21:50:34 瀏覽:1592
知道電壓如何算一小時多少電 發布:2023-08-31 21:46:20 瀏覽:1573
金手鐲54號圈周長是多少厘米 發布:2023-08-31 21:44:28 瀏覽:1745