PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : تبدیل اسکی به هگز



omidan321
16 / October / 2013, 03:42 PM
سلام من یه رشته اسکی دارم مث رشته زیر :::::>>> I‘¼

از این قطعه کد معادل هگز گرفتم شده این رشته ::::: >>> 0x10 0x49 0x91 0xBC 0x16

حالا میخام با دلفی تابعی داشته باشم تا کد اسکی رو به هگز تبدیل کنه



منتظر نظرات اساتید گرامی هستم .

admin
16 / October / 2013, 09:09 PM
سلام.
این تبدیل هگز به اسکی

کد:


!**************************************
! Name: Convert Hex to Ascii
! Description:This converts hex to ascii. Good for sending raw packets to servers.
! By: Api
!
!**************************************

function HexToAsc(strData:string): string;
var sresult:string; sfinal:string; hexc:cardinal; i:integer;
begin
i:=1;
while i<=length(strData) do
begin
hexc := strtoint(&quot;$&quot; + copy(strData,i,2));
sresult := inttostr(hexc);
sresult := chr(strtoint(sresult));
sfinal := sfinal + sresult;
i:=i+2;
end;
result := sfinal
end;

admin
16 / October / 2013, 09:14 PM
اینم تبدیل اسکی به هگز

کد:


ASCII to HEX (math)
These work on byte array to strings, also look at the Ord and Chr functions in Delphi.

BytesToHexStr does this [0,1,1,0] of byte would be converted to string := &quot;30313130&quot;; HexStrToBytes goes the other way.


--------------------------------------------------------------------------------

unit Hexstr;



interface

uses String16, SysUtils;



Type

PByte = ^BYTE;



procedure BytesToHexStr(var hHexStr: String; pbyteArray: PByte; InputLength: WORD);

procedure HexStrToBytes(hHexStr: String; pbyteArray: Pointer);

procedure HexBytesToChar(var Response: String; hexbytes: PChar; InputLength: WORD);



implementation

procedure BytesToHexStr(var hHexStr: String; pbyteArray: PByte; InputLength: WORD);

Const

*HexChars : Array[0..15] of Char = &quot;0123456789ABCDEF&quot;;

var

*i, j: WORD;

begin

SetLength(hHexStr, (InputLength * 2));

FillChar(hHexStr, sizeof(hHexStr), #0);

j := 1;

for i := 1 to InputLength do begin

*hHexStr[j] := Char(HexChars[pbyteArray^ shr 4]); inc(j);

*hHexStr[j] := Char(HexChars[pbyteArray^ and 15]); inc(j);

*inc(pbyteArray);

end;

end;



procedure HexBytesToChar(var Response: String; hexbytes: PChar; InputLength: WORD);

var

i: WORD;

c: byte;

begin

SetLength(Response, InputLength);

FillChar(Response, SizeOf(Response), #0);

for i := 0 to (InputLength - 1) do begin

*c := BYTE(hexbytes) And BYTE($f);

*if c > 9 then

*Inc(c, $37)

*else

*Inc(c, $30);

*Response[i + 1] := char(c);

end;{for}

end;



procedure HexStrToBytes(hHexStr: String; pbyteArray: Pointer);

{pbyteArray must point to enough memory to hold the output}

var

i, j: WORD;

tempPtr: PChar;

twoDigits : String[2];

begin

tempPtr := pbyteArray;

j := 1;

for i := 1 to (Length(hHexStr) DIV 2) do begin

*twoDigits := Copy(hHexStr, j, 2); Inc(j, 2);

*PByte(tempPtr)^ := StrToInt(&quot;$&quot; + twoDigits); Inc(tempPtr);

end;{for}

end;

end.


--------------------------------------------------------------------------------

UNIT String16.

interface

{$IFNDEF Win32}

*procedure SetLength(var S: string; Len: Integer);

*procedure SetString(var Dst: string; Src: PChar; Len: Integer);

{$ENDIF}

implementation

{$IFNDEF Win32}

*procedure SetLength(var S: string; Len: Integer);

*begin

*if Len > 255 then

*S[0] := Chr(255)

*else

*S[0] := Chr(Len)

*end;



*procedure SetString(var Dst: string; Src: PChar; Len: Integer);

*begin

*if Len > 255 then

*Move(Src^, Dst[1], 255)

*else

*Move(Src^, Dst[1], Len);

*SetLength(Dst, Len);

*end;

{$ENDIF}

end.





منبع : <span style="font-family: trebuchet ms"><font size="3"><font color="Indigo"><b><font color="red">[فقط اعضاء انجمن قادر به مشاهده لینکها و عکسها می باشند <a href="/reg_iran.php" target="_blank">برای عضویت در سایت کلیک کنید</a>]</font></b></font></font></span>(math).html