现有一字符串'1b04fd67...12e4',现要取每个字符的asc码转换成一个整形数组,结果应该是
buf[1]:=$31,buf[2]:=$42,buf[3]:=$30,buf[4]:=$34,buf[5]:=$46,buf[1]:=$44,....
请大家给个方法,谢谢!

解决方案 »

  1.   

    随便写了个,但好象有点问题,但更正了,能达到目的。
    unit unitStringToArray;interfaceuses
      SysUtils;type
      TIntArray = array of Integer;function StringToArray(AString: String): TIntArray;implementationfunction StringToArray(AString: String): TIntArray;
    var
      i: Integer;
    begin
      SetLength(Result, Length(AString) + 1);
      for i := 0 to Length(AString) - 1 do
        Result[i] := ord(AString[i]);
    end;end.
      

  2.   

    procedure TfrmMain.Button1Click(Sender: TObject);
    var
      i: Integer;
      s: TIntArray;
    begin
      s := StringToArray(Edit1.Text);
      for i := 0 to Length(s) - 1 do
      begin
        ListBox1.Items.Add(IntToStr(s[i]) + '|' + char(s[i]));
      end;
    end;
    测试调用过程!
      

  3.   

    var
      Buf : array of Byte;
      S ; String;
    begin
      S := '1b04fd67...12e4';
      SetLength(Buf,Length(S));
      CopyMemory(@Buf,@S[1],Length(S));
      //到这里时,buf[1]:=$31,buf[2]:=$42,buf[3]:=$30,buf[4]:=$34,buf[5]:=
    end;
      

  4.   

    更真刚才的
    //到这里时,buf[0]:=$31,buf[1]:=$42,buf[2]:=$30,buf[3]:=$34,buf[4]:=直接用PChar也行
    Buf : PChar;
    Buf := PChar(S);buf[0]:=$31,buf[1]:=$42,buf[2]:=$30,buf[3]:=$34,buf[4]:=