?? unit1.pas
字號:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, USB;
type
TForm1 = class(TForm)
Label1: TLabel;
ComboBox1: TComboBox;
Label2: TLabel;
Edit1: TEdit;
Label3: TLabel;
Button1: TButton;
Button2: TButton;
Label4: TLabel;
Edit2: TEdit;
Memo1: TMemo;
Memo2: TMemo;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure ComboBox1Click(Sender: TObject);
private
temp : PChar;
USB : TUSB;
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
function inttobcd(input:integer):string;
implementation
{$R *.dfm}
function inttobcd(input:integer):string;
var
i,j:integer;
begin
i := input div 16;
j := input mod 16;
result := '0x';
case i of
10: result := result+'A';
11: result := result+'B';
12: result := result+'C';
13: result := result+'D';
14: result := result+'E';
15: result := result+'F';
else
result := result+inttostr(i);
end;
case j of
10: result := result+'A';
11: result := result+'B';
12: result := result+'C';
13: result := result+'D';
14: result := result+'E';
15: result := result+'F';
else
result := result+inttostr(j);
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
index: integer;
size : integer;
i : integer;
hex_line: string;
begin
USB.set_driver(PChar(ComboBox1.Items.Strings[ComboBox1.ItemIndex])[0]);
if USB.Open = False then USB.Open := True;
if USB.Open = False then begin
MessageBox(0,'Can Open disk, please check it!',nil,mb_OK);
exit;
end;
index := strtoint(Edit1.Text);
size := strtoint(Edit2.Text);
Memo1.Font.Color := clBlue;
GetMem(temp,size shl SECTRO_SHFT);
USB.SectorRead_retry(temp,DWORD(index),DWORD(size));
Memo1.Clear;
Memo2.Clear;
// Memo1.Lines.SetText(temp);
hex_line := '';
for i := 0 to ((size shl SECTRO_SHFT)-1) do begin
hex_line := hex_line + inttobcd(integer(temp[i]))+ ' ';
//Memo1.Lines.Append(temp[i]);
Memo1.Text := Memo1.Text + temp[i];
if (((i+1) mod 16) = 0) and (i <>0) then begin
hex_line := hex_line + #13#10;
end;
end;
Memo2.Lines.SetText(PChar(hex_line));
freeMem(temp);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
USB := TUSB.Create;
USB.set_driver(PChar(ComboBox1.Items.Strings[ComboBox1.ItemIndex])[0]);
USB.Open := True;
if USB.Open = False then begin
MessageBox(0,'Can Open disk, please check it!',nil,mb_OK);
exit;
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
var
index: integer;
size : integer;
i : integer;
hex_line: string;
begin
Memo1.Font.Color := clRed;
USB.set_driver(PChar(ComboBox1.Items.Strings[ComboBox1.ItemIndex])[0]);
if USB.Open = False then USB.Open := True;
if USB.Open = False then begin
MessageBox(0,'Can Open disk, please check it!',nil,mb_OK);
exit;
end;
index := strtoint(Edit1.Text);
size := strtoint(Edit2.Text);
GetMem(temp,size shl SECTRO_SHFT);
memcopy(temp,Memo1.Lines.GetText,size shl SECTRO_SHFT);
hex_line := '';
for i := 0 to ((size shl SECTRO_SHFT)-1) do begin
hex_line := hex_line + inttobcd(integer(temp[i]))+ ' ';
if (((i+1) mod 16) = 0) and (i <>0) then begin
hex_line := hex_line + #13#10;
end;
end;
Memo2.Lines.SetText(PChar(hex_line));
USB.SectorWrite_retry(temp,DWORD(index),DWORD(size));
freeMem(temp);
end;
procedure TForm1.ComboBox1Click(Sender: TObject);
begin
USB.set_driver(PChar(ComboBox1.Items.Strings[ComboBox1.ItemIndex])[0]);
USB.Open := False;
USB.Open := True;
if USB.Open = False then begin
MessageBox(0,'Can Open disk, please check it!',nil,mb_OK);
exit;
end;
end;
end.
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -