24-04-2014, 06:06 PM
24-04-2014, 10:57 PM
و عليكم السلام .
الاستعمال :
PHP كود :
function Swap(A: Integer): Integer;
asm
{$IFDEF CPUX64}
MOV EAX,ECX
{$ENDIF !CPUX64}
BSWAP EAX
end;
PHP كود :
Caption := IntToHex(Swap($3FAB2000), 8);//Result = $0020AB3F
24-04-2014, 11:14 PM
بارك الله فيك اخي هذا ماكنت ابحث عنه
لكني لم استطع تطبيقه في برنامجي
ممكن تعديل على السورس وتحياتي لك
وشكرا لك
لكني لم استطع تطبيقه في برنامجي
ممكن تعديل على السورس وتحياتي لك
كود :
function Swap(A: Integer): Integer;
asm
{$IFDEF CPUX64}
MOV EAX,ECX
{$ENDIF !CPUX64}
BSWAP EAX
end;
procedure TForm1.Button1Click(Sender: TObject);
var j:tmemorystream;
i:integer;
p:byte;
g1:string;
begin
if not OpenDialog1.Execute then exit;
edit1.Text:=extractfilename(OpenDialog1.FileName);
j:=tmemorystream.Create;
j.LoadFromFile(OpenDialog1.FileName);
g1:='';
for i:=$0 to 3 do
begin
j.Position:=i;
j.Read(p,1);
g1:=g1+inttohex(p,2);
end;
g1 := IntToHex(Swap(g1), 8);
memo1.Text:=g1;
end;24-04-2014, 11:21 PM
صحح السطر ما قبل الأخير بهذا السطر :
PHP كود :
g1 := inttohex(Swap(StrToInt(Trim(g1))), 8);
24-04-2014, 11:26 PM
للاسف لم يعمل معي هل من حل اخر
25-04-2014, 11:50 AM
لم أنتبه الى أن g يحمل قيمة بالهكس ..
عدل السطر الى :
عدل السطر الى :
PHP كود :
g1 := inttohex(Swap(StrToInt('$'+g1)), 8);
25-04-2014, 12:35 PM
السلام عليكم
بعض التعديلات إنطلاقا من الاجراء الذي وضعته
بعض التعديلات إنطلاقا من الاجراء الذي وضعته
PHP كود :
function Swap(A: Integer): Integer;
asm
{$IFDEF CPUX64}
MOV EAX,ECX
{$ENDIF !CPUX64}
BSWAP EAX
end;
procedure TForm1.Button1Click(Sender: TObject);
var
MS: TMemoryStream;
P: Integer;
FileSize: Integer;
Buffer: array of Byte;
sByte: string;
begin
if not OpenDialog1.Execute then
Exit;
Edit1.Text := ExtractFileName(OpenDialog1.FileName);
MS := TMemoryStream.Create;
try
MS.LoadFromFile(OpenDialog1.FileName);
FileSize := MS.Size;
SetLength(Buffer, FileSize);
//MS.Position := 0; // B Position
MS.Read(Buffer[0], FileSize);
for P := 0 to 3 do
begin
sByte := sByte + IntToHex(Buffer[P], 2);
end;
sByte := IntToHex(Swap(StrToInt('$' + sByte)), 8);
Memo1.Lines.Add(sByte);
finally
MS.Free;
end;
end;
25-04-2014, 01:09 PM
أو من أول بايت إلى أخر بايت
بالتوفيق
PHP كود :
function Swap(A: Integer): Integer;
asm
{$IFDEF CPUX64}
MOV EAX,ECX
{$ENDIF !CPUX64}
BSWAP EAX
end;
procedure TForm1.Button1Click(Sender: TObject);
var
MS: TMemoryStream;
P, I: Integer;
FileSize: Integer;
Buffer: array of Byte;
sByte: string;
begin
if not OpenDialog1.Execute then
Exit;
Edit1.Text := ExtractFileName(OpenDialog1.FileName);
MS := TMemoryStream.Create;
try
MS.LoadFromFile(OpenDialog1.FileName);
FileSize := MS.Size;
SetLength(Buffer, FileSize);
//MS.Position := 0; // B Position
MS.Read(Buffer[0], FileSize);
I := 0;
for P := 0 to Pred(FileSize) do
begin
Inc(I);
sByte := sByte + IntToHex(Buffer[P], 2);
if I mod 4 = 0 then
begin
sByte := IntToHex(Swap(StrToInt('$' + sByte)), 8);
Memo1.Lines.Add(sByte);
sByte := '';
end;
end;
finally
MS.Free;
end;
end;
بالتوفيق
25-04-2014, 02:29 PM
بارك الله فيكما اخواي SMP3 و ghost-dz على هذه الرد لقد تم حل المشكل
حقيقة المنتدى رائع جدا وتعلمت منه الكثير
الف شكر مرة اخرى لكم
حقيقة المنتدى رائع جدا وتعلمت منه الكثير
الف شكر مرة اخرى لكم