استفسار بخصوص تحويل قيم الهيكس
#8
طريقة آخرى بإستعمال Format and IntToHex
طريقة التحويل من هكس إلى عدد صحيح :
PHP كود :
function ConvertToInt(Hex : Cardinal):Integer ;
begin
  Result 
:= StrToInt(Format('%d', [Hex]));
end; 
وهذه دالة التحويل من عدد صحيح إلى هكس والمخرجات (string)
PHP كود :
function ConvertToHexAsString(i : Byte):string;
begin
  Result 
:= IntToHex(i, 2);
end;

function 
ConvertToHexAsString(i : Word):string;
begin
  Result 
:= IntToHex(i, 4);
end;

function 
ConvertToHexAsString(i : DWORD):string;
begin
  Result 
:= IntToHex(i, 8);
end;

function 
ConvertToHexAsString(i : UInt64):string;
begin
  Result 
:= IntToHex(i, 16);
end; 

وهذا تطبيق لـ
إقتباس :هل ممكن طريقة تجعل كتابة البيانات بالهكس تفصل بينها مسافة بشكل الي ...وللتوصيح مثلا حين نكتب ffffff تصبح داخل البرنامج بهذا التنسيق ff ff ff
PHP كود :
unit Unit1;

interface

uses
  Winapi
.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls;

type
  TForm1 
= class(TForm)
    
btn1: TButton;
    
mmo1: TMemo;
    
procedure btn1Click(Sender: TObject);
  private
    { Private 
declarations }
  public
    { Public 
declarations }
  
end;

var
  
Form1: TForm1;

const
  
arrX : array[0..19] of Byte = ($55, $2, $FF, $C3, $A1, $EE, $71, $4E, $CD, $10,
    $
32, $85, $A9, $E3, $DF, $A, $CE, $00, $00, $C3);

function 
ConvertToHexAsString(i : UInt64):string; overload;
function 
ConvertToHexAsString(i : DWORD):string; overload;
function 
ConvertToHexAsString(i : Word):string; overload;
function 
ConvertToHexAsString(i : Byte):string; overload;

implementation

{$R *.dfm}

function 
ConvertToInt(Hex : Cardinal):Integer ;
begin
  Result 
:= StrToInt(Format('%d', [Hex]));
end;

function 
ConvertToHexAsString(i : Byte):string;
begin
  Result 
:= IntToHex(i, 2);
end;

function 
ConvertToHexAsString(i : Word):string;
begin
  Result 
:= IntToHex(i, 4);
end;

function 
ConvertToHexAsString(i : DWORD):string;
begin
  Result 
:= IntToHex(i, 8);
end;

function 
ConvertToHexAsString(i : UInt64):string;
begin
  Result 
:= IntToHex(i, 16);
end;

procedure TForm1.btn1Click(Sender: TObject);
var
  
sLine : string;
  
i : Integer;
begin
  
//test ConvertToInt
  
mmo1.Lines.Add(IntToStr(ConvertToInt($FF)));

  
//test ConvertToHexAsString
  
mmo1.Lines.Add(ConvertToHexAsString(11111111111111111111));

  
//test add byte by byte with space between them into memo
  
ZeroMemory(@sLine, SizeOf(sLine));
  for 
i := 0 to Length(arrX)-1 do
    
sLine := sLine + ' ' + ConvertToHexAsString(ArrX[i]);
  
mmo1.Lines.Add(sLine);
end;

end. 
طبقت على XE7
والسلام عليكم
الرد


الردود في هذا الموضوع
استفسار بخصوص تحويل قيم الهيكس - بواسطة ALmuhhnad - 10-10-2014, 06:30 AM

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم