📄 unit3.pas
字号:
unit Unit3;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
Dialogs, Buttons, StdCtrls ;
type
TForm3 = class(TForm)
Edit1: TEdit;
Button1: TButton;
StaticText1: TStaticText;
Edit2: TEdit;
Button2: TButton;
StaticText2: TStaticText;
BitBtn1: TBitBtn;
OpenDialog1: TOpenDialog;
OpenDialog2: TOpenDialog;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form3: TForm3;
implementation
{$R *.dfm}
procedure TForm3.Button1Click(Sender: TObject);
begin
if opendialog1.Execute then edit1.Text:=opendialog1.FileName else edit1.Text:='';
end;
procedure TForm3.Button2Click(Sender: TObject);
begin
if opendialog2.Execute then edit2.Text:=opendialog2.FileName else edit2.Text:='';
end;
procedure TForm3.BitBtn1Click(Sender: TObject);
var s: byte;
p: ^byte;
f,f2: file;
n,w, chaddr, i: integer;
begin
if (not fileexists(edit1.Text)) or (not fileexists(edit2.text)) then begin showmessage ('File not found'); exit; end;
if (AnsiLowerCase(extractfileext(edit1.text))<>'.bin') or (AnsiLowerCase(extractfileext(edit2.text))<>'.ndf') then begin showmessage ('Wrong file extension, (only .bin and .ndf)'); exit; end;
screen.cursor:=crhourglass;
AssignFile(F, edit1.text);
reset(f,1);
GetMem(p, filesize(f));
n:=0;
w:=0;
chaddr:=0;
while not eof(f) do
begin
n:=n+1;
blockread(f,s,1);
if (W=2) and (chr(s)='F') then begin chaddr:=n-3; w:=0; end;
if (W=1) and (chr(s)='D') then w:=2 else w:=0;
if chr(s)='N' then w:=1;
p^:=s;
inc(p);
end;
closefile(f);
dec(p,n);
if chaddr=0 then begin showmessage('Wrong bin file!'); freemem(p); exit; end;
assignfile(f2, copy(edit1.text,1, length(edit1.text)-4)+'edited.bin');
rewrite(f2,1);
for i:=1 to chaddr do
begin
blockwrite (f2,p^,1);
inc(p);
end;
dec(p,chaddr);
freemem(p);
AssignFile(F, edit2.text);
reset(f,1);
while not eof(f) do
begin
blockread(f,s,1);
blockwrite (f2,s,1);
end;
closefile(f);
closefile(f2);
screen.cursor:=crarrow;
form3.visible:=false;
showmessage('Done, '+ copy(edit1.text,1, length(edit1.text)-4)+'edited.bin created!');
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -