آخرين پست هاي ارسالي انجمن ايران دلفي

تماشای رایگان فیلم ایرانی ، خارجی و کودک آکادمی دلفی
نمایش نتایج: از 1 به 3 از 3

موضوع: تبدیل اسکی به هگز

Hybrid View

  1. #1
    کاربر سایت omidan321 آواتار ها
    تاریخ عضویت
    May 2013
    سن
    11
    نوشته ها
    5
    تشکر ها
    0
    تشکر شده 0 بار در 0 ارسال.

    تبدیل اسکی به هگز

    سلام من یه رشته اسکی دارم مث رشته زیر :::::>>> I‘¼

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

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



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

  2. #2
    مدیرکل سایت admin آواتار ها
    تاریخ عضویت
    September 2008
    محل سکونت
    تهران ، آیسک
    سن
    39
    نوشته ها
    522
    تشکر ها
    247
    تشکر شده 250 بار در 160 ارسال.
    Blog Entries
    1
    سلام.
    این تبدیل هگز به اسکی

    کد:

    کد:
    !**************************************
    ! 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;

    دلفی ،*جذاب ترین زبان طراحی نرم افزار ...

  3. #3
    مدیرکل سایت admin آواتار ها
    تاریخ عضویت
    September 2008
    محل سکونت
    تهران ، آیسک
    سن
    39
    نوشته ها
    522
    تشکر ها
    247
    تشکر شده 250 بار در 160 ارسال.
    Blog Entries
    1
    اینم تبدیل اسکی به هگز

    کد:

    کد:
    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.


    منبع : http://www.esanu.name/delphi/Algorithms/Conversions/ASCII%20to%20HEX%20(math).html
    دلفی ،*جذاب ترین زبان طراحی نرم افزار ...

علاقه مندي ها (Bookmarks)

علاقه مندي ها (Bookmarks)

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •