随便写了个,但好象有点问题,但更正了,能达到目的。 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.
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; 测试调用过程!
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;
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.
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;
测试调用过程!
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;
//到这里时,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]:=