C++用Edit Control时,读取输入的数据,和向里面写数据。主要是CSrting和十六进制(HEX)转换
2014-09-25 19:08
447 查看
因为是用USB通信,单片机识别指令一般都是十六进制,和串口差不多,我的起始目的是想获取Edit Control控件中的字符串,然后每两个字符转换成一个16进制数,如Edit Control控件中输入了:EEA200022266,我把它处理成0XEE,0XA2,0X00,0X02,0X22,0X66(我这是一个IIC写命令
)。
首先我们分析问题:
1.从Edit Control控件中获取输入的字符串,得到的是CString类型的数据。
a.我们包含#include <string>头文件
b.我们会用到命名空间:在头文件下面包含using namespace std;
c.CString ST,Ti;int Len = 0 ,i=0;int y[i]={0};unsigned char packet[256];
memset(packet, 0x00, 256);
GetDlgItem(IDC_EDIT_TX)->GetWindowText(ST);//从
IDC_EDIT_TX控件中获取的数据放在ST中。
Len=ST.GetLength();//长度
SetDlgItemInt(IDC_EDIT_RX,Len);//在另外一个Edit Control控件中显示长度(可以不要)
for(i=0;i<Len;i++)
{
Ti=Str.Mid(i,1);//一个个取字符
y[i]=strtol((LPSTR)(LPCTSTR)Ti,NULL,16);//将每个字符转换成一个16进制数
}
for(i=0;i<Len/2;i++)
{
packet[i]=(BYTE)(y[i*2]*16+y[i*2+1]);//每两个字符组合成一个十六进制发送
}
这样packet数组中存放的就是0xAA形式的十六进制数据了!
这种方法没有用到很多库函数,我当时也一心想找库函数,最后还是发现自己写吧!!!不要想的那么复杂,就当CString------int-----16进制,按照这个流程!
)。
首先我们分析问题:
1.从Edit Control控件中获取输入的字符串,得到的是CString类型的数据。
a.我们包含#include <string>头文件
b.我们会用到命名空间:在头文件下面包含using namespace std;
c.CString ST,Ti;int Len = 0 ,i=0;int y[i]={0};unsigned char packet[256];
memset(packet, 0x00, 256);
GetDlgItem(IDC_EDIT_TX)->GetWindowText(ST);//从
IDC_EDIT_TX控件中获取的数据放在ST中。
Len=ST.GetLength();//长度
SetDlgItemInt(IDC_EDIT_RX,Len);//在另外一个Edit Control控件中显示长度(可以不要)
for(i=0;i<Len;i++)
{
Ti=Str.Mid(i,1);//一个个取字符
y[i]=strtol((LPSTR)(LPCTSTR)Ti,NULL,16);//将每个字符转换成一个16进制数
}
for(i=0;i<Len/2;i++)
{
packet[i]=(BYTE)(y[i*2]*16+y[i*2+1]);//每两个字符组合成一个十六进制发送
}
这样packet数组中存放的就是0xAA形式的十六进制数据了!
这种方法没有用到很多库函数,我当时也一心想找库函数,最后还是发现自己写吧!!!不要想的那么复杂,就当CString------int-----16进制,按照这个流程!
相关文章推荐
- C++_输入一段数据到向量vector里面
- 将字符串形式的十六进制数据转换为十六进制数据(hex)
- C语言读取txt里面的图像数据字符串换成十六进制然后保存为bmp格式的图像文件
- gson 数据里面设置特殊字符不转换为十六进制
- C++ 怎么依次读取多个TXT里面的数据,放到一个数组里面
- 将一个十六进制字符串转换为十进制数值的问题|| 以及C++中string转换成char*|| c++文件按行输入
- C++:读取数量不定的输入数据
- C++读取数量不定的输入数据
- 关于C++二进制文件读取转换,数据版本升级,增加字段等结构调整工具的思路。
- 关于C++读取数量不定的输入数据
- c++输入文件处理按行读取并且将实现对一行数据分别处理
- C++入门基础篇学习手记: 读取数量不定的输入数据
- c++ 读取数量不定的输入数据
- C/C++输入读取数据函数总结
- 提取汉字字库文件里面二进制数据转换为十六进制数据存到文件
- C/C++中读取输入数据时的'\n'问题
- C和C++中读取不定数量的输入数据
- 在c++里面如何对读取出二进制数据进行操作
- 在循环中读取sqlDataReader.Read()中的所有列,数据类型如何转换?
- C++中的文件输入/输出(2):读取文件