SPCOMM字符转换的问题,字符串#1 转换为10进制

zjgsky 2013-03-23 10:30:00
接受代码如下:

procedure TForm1.Comm1ReceiveData(Sender: TObject; Buffer: Pointer;
BufferLength: Word);
var
strRecv,MyData: string;
MWei,Wei1,Wei2,Wei3: string;
begin
SetLength(strRecv,BufferLength);
Move(Buffer^,PChar(strRecv)^,BufferLength);
if strRecv=#$E5 then //发送确认码
begin
PLCEnter;
end
else
begin //处理接受的有效数据
if (Length(strRecv)=35) or (Length(strRecv)=127) and (SendType<>3) then
begin
if Length(strRecv)=35 then
begin
try
MyData:=Copy(strRecv,26,8);

except

end;

end;
if Length(strRecv)=127 then
begin

end;
end;
end ;
end ;


串口监控的数据如下:01 00 00 00 00 00 00 00
转化为字符串时怎么变成了 #1 #0 #0 #0 #0 #0 #0 #0,求解?
另请教怎么让 #1 #0 #0 #0 #0 #0 #0 #0转化为10进制。
...全文
469 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
hongss 2013-03-23
  • 打赏
  • 举报
回复
转换成ASC码

var
  Ss: array of byte;

  for i:=1 to BufferLength do
    Ss[i-1]:=ord(strRecv[i]);
zjgsky 2013-03-23
  • 打赏
  • 举报
回复
怎么转换呢!
haitao 2013-03-23
  • 打赏
  • 举报
回复
#1就是内容为1的一个字节的代码写法
sololie 2013-03-23
  • 打赏
  • 举报
回复
不耻下问
zjgsky 2013-03-23
  • 打赏
  • 举报
回复
好的,非常感谢,哈哈
hongss 2013-03-23
  • 打赏
  • 举报
回复
这个就自动转成10进制数据存在iAsc数组里,可以直接调用了。 比如,要判断首字符是不是$E5,就是十进制的229 if (iAsc[0]<>229) then Exit;
zjgsky 2013-03-23
  • 打赏
  • 举报
回复
引用 5 楼 hongss 的回复:
Delphi/Pascal code?12345678910111213141516procedure TForm1.Comm1ReceiveData(Sender: TObject; Buffer: Pointer; BufferLength: Word);var StrRecv: string; iAsc: array of Byte; i:int……
谢谢,不耻下问的请教下:请问接下来转10进制怎么转啊。
hongss 2013-03-23
  • 打赏
  • 举报
回复
procedure TForm1.Comm1ReceiveData(Sender: TObject; Buffer: Pointer;
  BufferLength: Word);
var
    StrRecv: string;
    iAsc: array of Byte;
    i:integer;
begin
  SetLength(strRecv,BufferLength);
  SetLength(iAsc,BufferLength);
  Move(Buffer^,PChar(strRecv)^,BufferLength);
//---------------转化为ASCII码开始---------------
  for i:=1 to BufferLength do
    iAsc[i-1]:= Ord(strRecv[i]);
//---------------转化为ASCII码结束---------------
 
end;
zjgsky 2013-03-23
  • 打赏
  • 举报
回复
代码调试没通过!
procedure TForm1.Comm1ReceiveData(Sender: TObject; Buffer: Pointer;
  BufferLength: Word);
var
    StrRecv: string;
    i:integer;
begin
  SetLength(strRecv,BufferLength);
  Move(Buffer^,PChar(strRecv)^,BufferLength);
//---------------转化为ASCII码开始---------------

求代码。。。。。

//---------------转化为ASCII码结束---------------

end;

5,392

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧