搜索
bottom↓
回复: 5

请教:Delphi中怎样限制输出字符串的长度【恢复】

[复制链接]

出0入0汤圆

发表于 2008-11-14 11:45:38 | 显示全部楼层 |阅读模式
把整型数据转为字符串在Memo中显示时,如整型数据为0,则输出也为0,怎么处理可使整型数据为0时显示为00?整型数据为1时,显示01?谢谢指教~~

阿莫论坛20周年了!感谢大家的支持与爱护!!

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出0入0汤圆

 楼主| 发表于 2008-11-14 17:07:41 | 显示全部楼层
谢谢两位

shark 说的看起来更简单,可我不知道怎么先得到串口的二进制数据...



从没接触过上位机,更不要说Delphi了,现在想把一别人用Delphi写的串口调试工具改成自己需要的数据显示方式供自己调试单片机(串口用的是SPCOMM控件),边改边学,困难重重~~

先看看我现在是怎么么办的(方法很笨,高手看了不要笑):

原作者的程序中有一把接收的数据转为十六进制字符串的程序,我按我的理解在原作的基础上改的,假如最后得到的十六进制字符串为A

var

 i:Integer



 i:=StrToInt('$'+A);

 Memo1.Text:=IntToStr(i);



这样的话要是一个字节还好说,我想把连续收到的3个单字节转换成十进制输出显示就显得麻烦了:

先定义一个字符串数组a[]保存收到的3个单字节数据;

i:=StrToInt('$'+a[0])*65536+StrToInt('$'+a[1])*256+StrToInt('$'+a[2]);

Memo1.Text:=IntToStr(i);

这样最后虽然得到了我要的结果,可怎么看怎么觉得太烦琐...



这段程序该怎么写?请朋友们指点一下,谢谢~

出0入0汤圆

发表于 2008-11-14 15:39:10 | 显示全部楼层
10进制显示调用IntToStr函数即可。

出0入0汤圆

发表于 2008-11-14 15:31:27 | 显示全部楼层
呵呵 ,这一段一直用C,习惯性错误。

串口收到的就是二进制数据而已,显示成什么都可以,同样可以用format函数来完成



var

   rec:byte;//收到的字节数据

begin

   memo1.Text := Format('%.2d ,0x%.2X',[rec,rec]);//前面用十进制显示,后面用十六进制显示

end;

   

出0入0汤圆

 楼主| 发表于 2008-11-14 14:51:57 | 显示全部楼层
谢谢shark 

"%.2d"要改成'%.2d'才能编译通过



想再问一个问题,怎么把从串口收到的单片机发过来的数据变成十进制的数据显示出来?

例如单片机发的数据是0x5A,我想让它变成90(5A的十进制)显示出来怎么做?谢谢~~

出0入0汤圆

发表于 2008-11-14 12:13:32 | 显示全部楼层
var

  s :string

  i:Integer;

begin

   s:= Format("%.2d",);

   memo1.Text := s;

end;
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-7-23 22:12

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表