⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 unit3.pas

📁 stbconvert103 with source
💻 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 + -