当前位置:首页 » 办公资讯 » 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