var str,str1,str2:string; i:integer; begin str:='31323334'; str2:=''; i:=0; while i<length(str) do begin str1:=copy(str,i+1,2); str2:=str2+chr(strtoint('$'+str1)) ; i:=i+2; end; showmessage(str2); end;
function HexToStr(AStr: string): string; var I : Integer; CharValue: Word; function TransChar(AChar: Char): Integer; begin if AChar in ['0'..'9'] then Result := Ord(AChar) - Ord('0') else Result := 10 + Ord(AChar) - Ord('A'); end; begin Result := ''; for I := 1 to Trunc(Length(Astr)/2) do begin Result := Result + ' '; CharValue := TransChar(AStr[2*I-1])*16 + TransChar(AStr[2*I]); Result[I] := Char(CharValue); end; end;
function HexToStr(AStr: string): string; var I,len : Integer; CharValue: Word; Tmp:string; s:char; begin Tmp:=''; len:=length(Astr); for i:=1 to len do begin s:=Astr[i]; if s <> ' ' then Tmp:=Tmp+ string(s); end; Result := ''; For I := 1 to Trunc(Length(Tmp)/2) do begin Result := Result + ' '; CharValue := TransChar(Tmp[2*I-1])*16 + TransChar(Tmp[2*I]); if (charvalue < 32) or (charvalue > 126) then Result[I] := '.' //非可见字符填充 else Result[I] := Char(CharValue); end; 之后调用该函数: var ss:string;ss:=HexToStr('31323334'); showmessage(ss);
function DealStr(Str: string): string; var i: integer; S2: string; begin Str := Trim(Str); for i := 0 to (Length(Str) div 2) - 1 do begin try S2 := S2 + Chr(StrToInt('$' + Str[2 * i + 1] + Str[2 * i + 2]) ); except end; end; Result := S2; end;procedure TForm1.Button1Click(Sender: TObject); begin edit1.Text:=DealStr('31323334'); end;
var
str,str1,str2:string;
i:integer;
begin
str:='31323334';
str2:='';
i:=0;
while i<length(str) do
begin
str1:=copy(str,i+1,2);
str2:=str2+chr(strtoint('$'+str1)) ;
i:=i+2;
end;
showmessage(str2);
end;
var
I : Integer;
CharValue: Word;
function TransChar(AChar: Char): Integer;
begin
if AChar in ['0'..'9'] then
Result := Ord(AChar) - Ord('0')
else
Result := 10 + Ord(AChar) - Ord('A');
end;
begin
Result := '';
for I := 1 to Trunc(Length(Astr)/2) do
begin
Result := Result + ' ';
CharValue := TransChar(AStr[2*I-1])*16 + TransChar(AStr[2*I]);
Result[I] := Char(CharValue);
end;
end;
var
I,len : Integer;
CharValue: Word;
Tmp:string;
s:char;
begin
Tmp:='';
len:=length(Astr);
for i:=1 to len do
begin
s:=Astr[i];
if s <> ' ' then Tmp:=Tmp+ string(s);
end;
Result := '';
For I := 1 to Trunc(Length(Tmp)/2) do
begin
Result := Result + ' ';
CharValue := TransChar(Tmp[2*I-1])*16 + TransChar(Tmp[2*I]);
if (charvalue < 32) or (charvalue > 126) then Result[I] := '.' //非可见字符填充
else Result[I] := Char(CharValue);
end;
之后调用该函数:
var
ss:string;ss:=HexToStr('31323334');
showmessage(ss);
var
i: integer;
S2: string;
begin
Str := Trim(Str);
for i := 0 to (Length(Str) div 2) - 1 do
begin
try
S2 := S2 + Chr(StrToInt('$' + Str[2 * i + 1] + Str[2 * i + 2]) );
except
end;
end;
Result := S2;
end;procedure TForm1.Button1Click(Sender: TObject);
begin
edit1.Text:=DealStr('31323334');
end;
然后将数组转化成 16 进制 string