各位,问个初级的问题:
如何将Memo3.Text中的FF55030405060708AA00000000000000323C463202900266029A01(十六进制)转换成整形数组:a[0]:=0xFF,a[2]:=0x55,a[3]:=0x03..... 一定是要变成整形数据。谢谢!

解决方案 »

  1.   

    假设数据中间有空格:FF 55 03 04 05 06 07 08 AA 00 00 00 00 00 00 00 32 3C 46 32 02 90 02 66 02 9A 01又该怎么处理?
      

  2.   

    var a:array of byte;
        i,n:integer;
    begin
      with Memo1 do
        begin
           Text:='FF 55 03 04 05 06 07 08 AA 00 00 00 00 00 00 00 32 3C 46 32 02 90 02 66 02 9A 01';
           Text:=StringReplace(Text,' ','',[rfReplaceAll]);//没空格就不要这句了
           n:=Length(Text);
           SetLength(a,n div 2);
           for i:=0 to (n div 2)-1 do
            a[i]:=StrToInt('$'+Text[(i+1)*2-1]+Text[(i+1)*2]);
        end;
    end;
      

  3.   

    用hextobin也可:
    procedure TForm1.Button1Click(Sender: TObject);
    var
      s:string;
      t:array [0..255] of char;
      a:array [0..255] of integer;
      i:integer;
    begin
    s:='FF55030405060708AA00000000000000323C463202900266029A01';
     hextobin(pchar(s),@t,length(s) div 2);
    for i:=0 to length(s) div 2-1 do
      a[i]:=integer(t[i]);
    end;