情况:
1.电脑的2个串口用RS232连接线相连。
2.使用串口调试助手打开COM2,每隔5秒向COM1以16进制发送50个字节,以0DH结尾。
3.编写Delphi程序,打开COM1,定义 ByteReceive : array[0..49] fo Byte 数组变量接收此字符串。问题
1.如何将ByteReceive数组转换成字符串?
我的方法:
var
ByteReceive: array[0..49] of Byte;
PT:PByte; {字节指针}
begin
Comm1.ReadInputByte(PT); {将PT指向接收到的字符串地址)
 for i:= 0 to 49 do
  begin
   ByteReceive[i]:= PT^;
   inc(PT);
  end;
此后就不知道如何将ByteReceive[i]转换成字符串了。2.如何提取ByteReceive数组某些位置的字节转换成字符串? 
例如: 提取ByteReceive[23]到ByteReceive[28]这些字节组成的字符串。

解决方案 »

  1.   

    1、
    var
      S: String;
      PT: PByte; {字节指针}
      I: Integer;
    begin
      Comm1.ReadInputByte(PT);
      SetLength(S, 50);
      for i:= 1 to 50 do
      begin
        S[i]:= Chr(PT^);
        inc(PT);
      end;
    end;————————————————————————————————————
    宠辱不惊,看庭前花开花落,去留无意;毁誉由人,望天上云卷云舒,聚散任风。
    ————————————————————————————————————
      

  2.   

    2、
      Copy(S, 24, 28-24+1);————————————————————————————————————
    宠辱不惊,看庭前花开花落,去留无意;毁誉由人,望天上云卷云舒,聚散任风。
    ————————————————————————————————————