delphi4arab منتديات دلفي للعرب
كيف عن قيمة هيكس في ملف bin ثم استبدالها ؟ - نسخة قابلة للطباعة

+- delphi4arab منتديات دلفي للعرب (https://delphi4arab.net/forum)
+-- قسم : منتديات دلفي للعرب التعليمية (https://delphi4arab.net/forum/forumdisplay.php?fid=3)
+--- قسم : سؤال و جواب حول دلفي (https://delphi4arab.net/forum/forumdisplay.php?fid=15)
+--- الموضوع : كيف عن قيمة هيكس في ملف bin ثم استبدالها ؟ (/showthread.php?tid=7809)



كيف عن قيمة هيكس في ملف bin ثم استبدالها ؟ - salah07230 - 08-05-2016

السلام عليكم
عندي ملف اريد ان ابحث  داخله عن قيمة معية هي بالهكس مثلا: BF0300E0008C
بعد ايجادها اريد تحديد الاوفسات الخاص بها وتغييرها بقيمة اخرى
بحثت سابقا  كثيرا ولم اجد حلا الى الان
ان شاء الله اجد حلا هنا
وشكرا لكم


RE: البحث في ملف bin - محمدعلى - 09-05-2016

(08-05-2016, 09:46 PM)salah07230 كتب : السلام عليكم
عندي ملف اريد ان ابحث  داخله عن قيمة معية هي بالهكس مثلا: BF0300E0008C
بعد ايجادها اريد تحديد الاوفسات الخاص بها وتغييرها بقيمة اخرى
بحثت سابقا  كثيرا ولم اجد حلا الى الان
ان شاء الله اجد حلا هنا
وشكرا لكم



تفضل اخى على باضافة مكون MPHexEditor1 فى المشروع

كود :
procedure TForm1.Button1Click(Sender: TObject); begin If OpenDialog1.Execute then begin caption := ExtractFileName(OpenDialog1.FileName); MPHexEditor1.LoadFromFile(OpenDialog1.FileName); MPHexEditor1.SelStart := 259477 ; MPHexEditor1.SelEnd   := 259504 ; EDit1.text := MPHexEditor1.SelectionAsText ; end; end; procedure TForm1.Button2Click(Sender: TObject); begin MPHexEditor1.SelStart := 259477 ; MPHexEditor1.SelEnd   := 259504 ; MPHexEditor1.SelectionAsText := EDit1.Text ; MPHexEditor1.SaveToFile(OpenDialog1.FileName); Showmessage('Save Ok !'); end;



RE: كيف عن قيمة هيكس في ملف bin ثم استبدالها ؟ - salah07230 - 09-05-2016

مشكور اخي محمد على ردك
وحشتني كثير
ان شاء الله تكون بالف خير وعافية
تحياتي لك
جاري التجريب


RE: كيف عن قيمة هيكس في ملف bin ثم استبدالها ؟ - محمدعلى - 09-05-2016

تفضل اخى

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, ComCtrls, XPMan;
type a = array [0..1000000] of char;
type
TForm1 = class(TForm)
Button1: TButton;
OpenDialog1: TOpenDialog;
SaveDialog1: TSaveDialog;
Edit3: TEdit;
Timer1: TTimer;
ProgressBar1: TProgressBar;
Edit1: TEdit;
Button3: TButton;
Button2: TButton;
Edit2: TEdit;
XPManifest1: TXPManifest;
Label1: TLabel;
Label2: TLabel;
StatusBar1: TStatusBar;
procedure Button1Click(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button2Click(Sender: TObject);

private
{ Private declarations }
public
f:file of a;
s:file of a;
d: a;

{ Public declarations }
end;

var
Form1: TForm1;

implementation

uses Unit2;
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
i : integer ;
begin
if OpenDialog1.Execute then
begin
Button1.Enabled:=false;
Button3.Enabled := True;
Edit1.Text := Edit1.Text + ' ' + ExtractFileName(OpenDialog1.FileName);
AssignFile (f, OpenDialog1.FileName);
reset(f);
Read(f, d);
for i := 0 to 15 do
begin
Edit3.Text := Edit3.Text + IntToHex(Ord(d[I]),2);
end;
end;

end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
progressbar1.Position := 0;
caption := caption[Length(caption)] + Copy(caption, 1,Length(caption) - 1);
end;
procedure TForm1.Button3Click(Sender: TObject);
var sTemp,fTemp,aTemp,bTemp,cTemp,dTemp : string;
var soft,soft1,soft2,soft3,soft4,soft5: char;
begin
if Edit1.Text='File Name' then
MessageBeep($00000040);
Messagedlg('Ok Ali Extractor File',mtInformation,[mbOk],0);


sTemp:=edit3.Text;


if length(sTemp)<>32 then
begin
MessageDlg('Invalid Key', mtError,[mbOk], 0);
exit;
end;



begin
copyFile(pchar(opendialog1.filename),pchar(opendialog1.filename + '.BAK'),true);
AssignFile (F, OpenDialog1.FileName);
reset(f);
soft:=chr(strtoint('$' + copy(sTemp,1,2)));
d[4]:=soft;
soft:=chr(strtoint('$' + copy(sTemp,3,2)));
d[5]:=soft;
soft:=chr(strtoint('$' + copy(sTemp,5,2)));
d[6]:=soft;
soft:=chr(strtoint('$' + copy(sTemp,7,2)));
d[7]:=soft;
soft:=chr(strtoint('$' + copy(sTemp,9,2)));
d[8]:=soft;
soft:=chr(strtoint('$' + copy(sTemp,11,2)));
d[9]:=soft;
soft:=chr(strtoint('$' + copy(sTemp,13,2)));
d[10]:=soft;
soft:=chr(strtoint('$' + copy(sTemp,15,2)));
d[11]:=soft;
soft:=chr(strtoint('$' + copy(sTemp,17,2)));
d[12]:=soft;
soft:=chr(strtoint('$' + copy(sTemp,19,2)));
d[13]:=soft;
soft:=chr(strtoint('$' + copy(sTemp,21,2)));
d[14]:=soft;
soft:=chr(strtoint('$' + copy(sTemp,23,2)));
d[15]:=soft;
soft:=chr(strtoint('$' + copy(sTemp,25,2)));
d[16]:=soft;
soft:=chr(strtoint('$' + copy(sTemp,27,2)));
d[17]:=soft;
soft:=chr(strtoint('$' + copy(sTemp,29,2)));
d[18]:=soft;
soft:=chr(strtoint('$' + copy(sTemp,31,2)));
d[19]:=soft;
if length(fTemp)<>32 then
begin

Write(f,d);
CloseFile(f);
Edit1.Text:='File Name';
begin


end;
//end;
//end;
//end;
//end;
//end;
begin
timer1.Enabled := True;
progressbar1.Position := progressbar1.Position + 100 ;

end;
if progressbar1.Position = progressbar1.Max then
begin
timer1.Enabled := True;
end;

end;


end;

Button1.Enabled:=true;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
close;
end;

end.


RE: كيف عن قيمة هيكس في ملف bin ثم استبدالها ؟ - salah07230 - 09-05-2016

مشكور اخي محمد اتعبتك معي ساحاول التعديل على المثال الاول


RE: كيف عن قيمة هيكس في ملف bin ثم استبدالها ؟ - محمدعلى - 09-05-2016

تفضل اخى الملف


RE: كيف عن قيمة هيكس في ملف bin ثم استبدالها ؟ - salah07230 - 09-05-2016

مشكور اخي محمد وبارك الله فيك