zoukankan      html  css  js  c++  java
  • MFC输入框CEdit控件十六进制转换

    做MFC串口发送的时候,一般使用CEdit控件作为发送输入框,一般是发送输入框关联一个CString的变量,通过updatedata更新,大部分情况下我们需要使用十六进制发送,但是CString默认是字符串格式,比如输入框输入11 22 33 44 55,实际上是内容"11 22 33 44 AA",我们希望将它转换为0x11,0x22,0x33,0x44,0xaa。

    那么如何实现了,通过下列的2个函数实现

     1 //将一个字符串作为十六进制串转化为一个字节数组,字节间可用空格分隔,
     2 //返回转换后的字节数组长度,同时字节数组长度自动设置。
     3 //说明:将字符串str[]="11 22 33 44 AA"转换成0x11,0x22,0x33,0x44,0xaa
     4 int CMFC_Uart20160921Dlg::Str2Hex(CString str, char* data)
     5 {
     6     int t, t1;
     7     int rlen = 0, len = str.GetLength();
     8     //data.SetSize(len/2);
     9     for (int i = 0; i<len;)
    10     {
    11         char l, h = str[i];
    12         if (h == ' ')
    13         {
    14             i++;
    15             continue;
    16         }
    17         i++;
    18         if (i >= len)
    19             break;
    20         l = str[i];
    21         t = HexChar(h);
    22         t1 = HexChar(l);
    23         if ((t == 16) || (t1 == 16))
    24             break;
    25         else
    26             t = t * 16 + t1;
    27         i++;
    28         data[rlen] = (char)t;
    29         rlen++;
    30     }
    31     return rlen;
    32 }
    33 
    34 char CMFC_Uart20160921Dlg::HexChar(char c)
    35 {
    36     if ((c >= '0') && (c <= '9'))
    37         return c - 0x30;
    38     else if ((c >= 'A') && (c <= 'F'))
    39         return c - 'A' + 10;
    40     else if ((c >= 'a') && (c <= 'f'))
    41         return c - 'a' + 10;
    42     else
    43         return 0x10;
    44 }

    测试代码如下

    char data[512];
    
    //十六进制发送
    int iLen = Str2Hex(m_EditSend,data);//m_EditSend是CEit控件关联的CString变量
    pThreadCom->SendData((BYTE *)data, iLen);//通过串口发送数据
  • 相关阅读:
    python hashlib模块
    OS模块-提供对操作系统进行调用的接口
    For循环
    python --time()函数
    使用docker部署prometheus和grafana 并监控mysql 配置告警
    记换换回收一个js逆向分析
    mitmproxy 在windows上的使用
    elasticsearch_dsl 的nested
    利用谷歌插件破解今日头条的新闻ajax参数加密,新手都能懂
    aiohttp爬虫的模板,类的形式
  • 原文地址:https://www.cnblogs.com/codecamel/p/5909071.html
Copyright © 2011-2022 走看看