有一个byte数组 buffer: arryay[0..2047] of byte,该数据里面存放的是十六进制数,比如:
buffer[0] := $02;
buffer[1] := $03;
......
buffer[2047] := $10;现在想把这2048个字节组合成字,也就是1024个字,请问怎么组合?例如将上面的$02和$03组合成 0203?

解决方案 »

  1.   

    var
      buf: array[0..2047] of char;
      tmp: string;
    begin
      move(buffer,buf,2048);
      //buf就是你所要的字符串。
      tmp := buf;
      ShowMessage(buf);
      ShowMessage(tmp);
    end;
      

  2.   

    str:tstrings;str:=tliststring.create;
    str.clear;
    for i:=0 to 1023 do
    begin
    s1:=inttohex(buffer[2i],2);
    s2:=inttohex(buffer[2i+1],2);
    str.add(s1+s2);
    end;
      

  3.   

    我是这么写的:var
      buf: array[0..3] of byte;
      buffer: array[0..1] of word;
      tmp: string;
      i: integer;
    begin
      buf[0] := $02;
      buf[1] := $03;
      buf[2] := $04;
      buf[3] := $05;
      move(buf,buffer,4);
      for i := 0 to 1 do
        我的组件名字.WriteRegister(i+1,buffer[i]);
    end;发过去后,发现寄存器里面变成了 0x0302 和 0x0504,是正常的吗?