CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C++ Builder >  基础类

字符转换的问题,在线等待,急救!

楼主ywpower(茜茜)2003-12-03 08:49:45 在 C++ Builder / 基础类 提问

我在C++Builder中添加了两个Memo,现要将Memo2里面的十六进制的数据转换成为字符型的数据,通过串口显示在Memo1里面,请问该如何实现,用到什么函数呢? 问题点数:20、回复次数:10Top

1 楼fatwave(风中的雨)回复于 2003-12-03 08:57:35 得分 0

AnsiString   h   =   "b3";  
  h   =   "0x"   +   h;  
  int   i   =   h.ToIntDef(0);     //   i   =   179Top

2 楼codecb(阿星)回复于 2003-12-03 08:58:08 得分 0

Converts   a   string   of   hexadecimal   digits   to   the   corresponding   binary   value.  
  HexToBinTop

3 楼ywpower(茜茜)回复于 2003-12-03 09:38:47 得分 0

比如说我在Memo2里面填写61   62.通过发送按扭,在Memo1里面就显示a   b.我想知道用到什么函数,可以实现转换Top

4 楼PPower(月亮光光,照地堂)回复于 2003-12-03 11:20:04 得分 0

1、把字符串分解成一個個子串,每個子串都只有一個十六进制的数据,  
  2、將十六进制的数据,轉成字符。  
   
  或者用sscanf函數格式化輸入,具體看幫助。Top

5 楼huoniao1976(火鸟1976)回复于 2003-12-03 12:36:45 得分 0

进行转换char()Top

6 楼ywpower(茜茜)回复于 2003-12-03 13:23:20 得分 0

huoniao1976(火鸟1976)   :可以具体一点吗?谢谢了Top

7 楼yjy1001(蓝鲸--优秀得郁闷的鱼)回复于 2003-12-03 13:37:02 得分 0

10进制   转   16   进制  
    IntToHex(int   x,   int   count);  
   
  16   进制   转   10,我通常自己写函数  
  函数很简单,这里不写了,自己写吧  
   
  显示的时候   转成   10进制,然后用   char()显示出来   就可以了Top

8 楼ywpower(茜茜)回复于 2003-12-03 14:16:42 得分 0

是这样的,我做的是用串口通讯的程序,现将Memo2里的内容放进了inbuff[]里面,如果Memo2里面是十六进制的数据61   62   63,如何转换成字符在Memo1里面显示a   b   c呢。inbuff[]是Char类型的。Top

9 楼huoniao1976(火鸟1976)回复于 2003-12-03 16:31:53 得分 20

写什么就发什么,不用转换呀,为什么要进行转换呢?  
  临时写了一个转换程序,你看看能不能用  
  str   =   Memo1->Text;  
          str   =   str.UpperCase();  
          //自己判断是单字节还是双字节  
          int   bb   =   0;  
          for   (int   i=1;i<=str.Length();i++){  
                  int   aa   =   1;  
                  for   (int   j=1;j<=str.Length()-i;j++){  
                          aa   *=   16;  
                  }  
                  int   cc;  
                  if   (str.SubString(i,1)   ==   "A"){  
                          cc   =   10;  
                  }   else   if   (str.SubString(i,1)   ==   "B"){  
                          cc   =   11;  
                  }   else   if   (str.SubString(i,1)   ==   "C"){  
                          cc   =   12;  
                  }   else   if   (str.SubString(i,1)   ==   "D"){  
                          cc   =   13;  
                  }   else   if   (str.SubString(i,1)   ==   "E"){  
                          cc   =   14;  
                  }   else   if   (str.SubString(i,1)   ==   "F"){  
                          cc   =   15;  
                  }   else   {  
                          cc   =   StrToInt(str.SubString(i,1));  
                  }  
                  bb   +=   cc   *   aa;  
          }  
          Momo2->Line->Add(   char(bb));  
  Top

10 楼huoniao1976(火鸟1976)回复于 2003-12-03 16:33:29 得分 0

这是用串口发送数据  
  String   Temp;  
      char   *SendData;  
      int     ln;  
      unsigned   long   lrc,BS;  
      if   (Key!=13)  
        return;  
      if   (hComm==0)  
        return;   //   检查Handle值  
      Temp   =   mSend->Text;//取得传送的字符串  
      SendData   =   Temp.c_str();   //字符串转换  
      //取得传送的字符串长度  
      BS   =   Temp.Length();  
      //BS   =   StrLen(SendData);     //也可以使用此种方式取得字符串长度  
      //   实际的传送动作  
      WriteFile(hComm,SendData,BS,   &lrc,NULL);   //   送出数据Top

相关问题

  • 字符转换问题,高手请进,急救!!!!!!!!!!!
  • 有关ORACLE字符显示的问题!!!!!!!!!在线等待!!!!!急救!!!!!!!!!
  • 字符转换
  • 字符转换
  • 字符转换
  • 字符转换
  • 字符转换
  • 字符转换?
  • 字符转换
  • 字符转换????

关键词

  • 转换
  • 字符
  • 函数
  • 数据
  • 字符串
  • memo
  • 十六进制
  • senddata
  • 传送
  • bs

得分解答快速导航

  • 帖主:ywpower
  • huoniao1976

相关链接

  • CSDN Blog
  • 技术文档
  • 代码下载
  • 第二书店
  • 读书频道

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo