10-10-2014, 06:30 AM
طريقة آخرى بإستعمال Format and IntToHex
طريقة التحويل من هكس إلى عدد صحيح :
وهذه دالة التحويل من عدد صحيح إلى هكس والمخرجات (string)
وهذا تطبيق لـ
طبقت على XE7
والسلام عليكم
طريقة التحويل من هكس إلى عدد صحيح :
PHP كود :
function ConvertToInt(Hex : Cardinal):Integer ;
begin
Result := StrToInt(Format('%d', [Hex]));
end;
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.
والسلام عليكم

