![]() |
|
البحث عن قيم hex - نسخة قابلة للطباعة +- delphi4arab منتديات دلفي للعرب (https://delphi4arab.net/forum) +-- قسم : منتديات دلفي للعرب التعليمية (https://delphi4arab.net/forum/forumdisplay.php?fid=3) +--- قسم : سؤال و جواب حول دلفي (https://delphi4arab.net/forum/forumdisplay.php?fid=15) +--- الموضوع : البحث عن قيم hex (/showthread.php?tid=8704) |
البحث عن قيم hex - salah07230 - 27-05-2017 السلام عليكم رمضان كريم على الجميع عندي هذا الكود الخاص بالبحص عن قيم بالهكس موجودة في ملف كود : function FindByHexStr(const AFile, AHexStr: string): Integer;
function HexStr2ChrStr(HexStr: string): string;
var
I: Integer;
S: string;
begin
for I := 1 to Length(HexStr) do
begin
S := S + HexStr[I];
if I mod 2 = 0 then
begin
Result := Result + Chr(StrToInt('$' + S));
S := '';
end;
end;
end;
var
MS: TMemoryStream;
FileSize: Integer;
Buffer: string;
begin
Result := -1;
MS := TMemoryStream.Create;
try
MS.LoadFromFile(AFile);
FileSize := MS.Size;
SetLength(Buffer, FileSize);
MS.Read(Buffer[1], FileSize);
try
Result := Pos(HexStr2ChrStr(AHexStr), Buffer) - 1;
except
// Error
end;
finally
MS.Free;
end;
end;
Usage:
Edit1.Text := IntToStr(FindByHexStr('C:\Test.exe', '4D5A500002'));الكود يعمل جيدا ولكن اريد التعديل عليه memo2.Lines.Add(IntToStr(FindByHexStr(opendialog1.FileName, (edit2.text)))); جربت هذا لكن يعطي النتيجة -1 فهل من حل للمشكل وهل يمكن تطوير الكود لجلب اوفيس جميع القيم لانه يتوقف عند القيمة الاولى وشكرا |