16,749
社区成员
发帖
与我相关
我的任务
分享
procedure TForm1.Button2Click(Sender: TObject);
const hexChars='0123456789ABCDEF';
datastr='32 46 35 42 31 39 30 30 2D 31 43 46 45 2D 30 38 30 31 2D 41';
var s,tmp1,tmp2:string;
x:integer;
function Getbyte(hexstr:string):integer;
begin
Result:=-1;
if length(hexstr)<>2 then exit;
Result:=(pos(hexstr[1],hexChars)-1) shl 4 + pos(hexstr[2],hexChars)-1;
end;
begin
s:=datastr;
tmp1:='';
while length(s)>0 do begin
x:=Getbyte(s[1]+s[2]);
tmp2:=tmp2+inttostr(x)+',';
tmp1:=tmp1+char(x);
delete(s,1,3);
end;
showmessage(datastr+#13+tmp2+' ___ '+tmp1);
end;
procedure TForm1.Button1Click(Sender: TObject);
const hexChars='0123456789ABCDEF'; //定义一个字符串常量(这里还注释,好像不太礼貌)
var s:string;
i:integer;
begin
s:='32463542313930302D314346452D303830312D41';
for i:=1 to length(s) do//循环取s中的每个字符
showmessage(inttostr(pos(s[i],hexChars)-1));//将取出的字符作“子串”,在上面定义的常量中找匹配的位置,从而得出对十进制的映射。
end;
procedure TForm1.Button1Click(Sender: TObject);
const
hexChars='0123456789ABCDEF';
var s:string;
i:integer;
begin
s:='32463542313930302D314346452D303830312D41';
for i:=1 to length(s) do
showmessage(inttostr(pos(s[i],hexChars)-1));
end;