📄 unit1.pas
字号:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, DB, ADODB, Grids, DBGrids, ExtCtrls, DBCtrls, Menus,
comobj;
type
TForm1 = class(TForm)
DataSource1: TDataSource;
DBGrid1: TDBGrid;
ADOConnection1: TADOConnection;
at_Random: TADOTable;
Button1: TButton;
DBNavigator1: TDBNavigator;
Button2: TButton;
ADOQuery1: TADOQuery;
Edit1: TEdit;
Edit2: TEdit;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Edit3: TEdit;
Label4: TLabel;
at_pw: TADOTable;
ADOQuery2: TADOQuery;
at_mnumtemp: TADOTable;
ADOQuery3: TADOQuery;
PopupMenu1: TPopupMenu;
N1: TMenuItem;
Button3: TButton;
Button4: TButton;
Edit4: TEdit;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure N1Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
i,j,k,m:Longint; //循环变量
x_value1,x_value2:Longint;//随机数
x_count,x_bit,x_bitn:Longint; //个数
x_random,x_randomn,s1,s2:string;//范围
t1,t2:integer;
begin
x_random := '';
x_randomn := '';
if edit1.Text = '' then
begin
ShowMessage('卡号是多少位');
exit;
end;
if edit2.Text = '' then
begin
ShowMessage('没有个数');
exit;
end;
if edit3.Text = '' then
begin
ShowMessage('密码是多少位');
exit;
end;
Randomize;
//
x_bit := StrToInt(edit3.Text);// 密码位数
x_bitn := StrToInt(edit1.Text);// 卡号位数
x_count:=StrToInt(edit2.Text);//个数
if at_pw.Active = false then
at_pw.Active := true;
if at_Random.Active = false then
at_random.Active := true;
at_Random.First;
at_pw.First;
i:=0;
with at_mnumtemp do begin
Active := true;
DisableControls;
end;
while i<x_count do
begin
s1:='';
for k:= 1 to x_bitn do begin
s1:=s1+ inttostr(random(9));
end;
s1:=edit4.Text + s1;
try
at_Random.Append;
at_Random.FieldByName('Num').AsString:= s1;
at_Random.Post;
while true do begin
s2:='';
t1:=random(x_bit);
t2:=t1;
while t1=t2 do begin
t2:=random(x_bit);
end;
for m:=0 to x_bit-1 do begin
{ if (m=t1) or (m=t2) then begin
s2:=s2+chr(byte((random(26)+65)));
Continue;
end;
}
s2:=s2+inttostr(random(9));
end;
{ if (trim(s2[1])<>trim(s2[2])) and
(trim(s2[1])<>trim(s2[3])) and
(trim(s2[1])<>trim(s2[4])) and
(trim(s2[1])<>trim(s2[5])) and
(trim(s2[1])<>trim(s2[6])) and
(trim(s2[2])<>trim(s2[3])) and (trim(s2[2])<>trim(s2[4])) and (trim(s2[2])<>trim(s2[5])) and (trim(s2[2])<>trim(s2[6])) and
(trim(s2[3])<>trim(s2[4])) and (trim(s2[3])<>trim(s2[5])) and (trim(s2[3])<>trim(s2[6])) and
(trim(s2[4])<>trim(s2[5])) and (trim(s2[4])<>trim(s2[6])) and
(trim(s2[5])<>trim(s2[6])) then begin end else Continue;
}
try
at_pw.Append;
at_pw.FieldByName('mpassword').AsString:= s2;
at_pw.Post;
i:=i+1;
at_mnumtemp.Append;
at_mnumtemp.FieldByName('mnum').AsString:= s1;
at_mnumtemp.FieldByName('mpassword').AsString:= s2;
at_mnumtemp.Post;
break;
except
at_pw.Cancel;
end;
end;
except
at_Random.Cancel;
end;
end;
Label3.Caption:=IntToStr(at_mnumtemp.RecordCount);
with at_mnumtemp do begin
Active := false;
Active := true;
Refresh;
EnableControls;
end;
ShowMessage('ok');
//产生卡号
{x_count:=StrToInt(edit1.Text);
if at_Random.Active = false then
at_random.Active := true;
at_Random.First;
for i:=1 to x_count do
begin
x_value1:=random(strtoint(x_random));
at_Random.Append;
at_Random.FieldByName('Num').AsInteger:= x_value1;
at_Random.Post;
end;
Label3.Caption:=IntToStr(at_Random.RecordCount); }
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
ADOQuery3.ExecSQL;
at_mnumtemp.Active := false;
at_mnumtemp.Active := true;
//ADOQuery1.ExecSQL;
//ADOQuery2.ExecSQL;
end;
procedure TForm1.N1Click(Sender: TObject);
var
ExcelApp:Variant;
i,j:integer;
begin
try
ExcelApp := CreateOleObject('Excel.Application');
except
showmessage('你没装Excel,谢谢:)');
exit;
end;
ExcelApp.Visible :=true;
ExcelApp.WorkBooks.Add;
at_mnumtemp.First;
i:=0;
while not at_mnumtemp.Eof do //全都导出
begin
i:=i+1;
for j:=0 to at_mnumtemp.FieldCount-1 do
ExcelApp.Cells[i,j+1].Value :=at_mnumtemp.Fields[j].Value;
at_mnumtemp.Next;
end;
end;
procedure TForm1.Button3Click(Sender: TObject);
var
x1,x2,x3:integer;
s1:string;
i,j:integer;
begin
{s1:='';
j:=0;
Randomize;
x1:=strtoint(Edit1.Text);//卡号位数,循环次数
x2:=strtoint(Edit2.Text);//个数
while j<x2 do begin
s1:='';
for i:= 1 to x1 do begin
s1:=s1+ inttostr(random(9));
end;
with at_mnumtemp do begin
try
Append;
FieldByName('mnum').AsString := s1;
post;
j:=j+1;
except
Cancel;
end;
end;
end;
Label3.Caption := inttostr(at_mnumtemp.RecordCount);
ShowMessage('ok'); }
end;
procedure TForm1.Button4Click(Sender: TObject);
var
x1,x2:integer;
t1,t2:integer;
i,j:integer;
s1:string;
begin
Randomize;
s1:='';
j:=0;
x1:= strtoint(Edit3.Text);//密码位数
x2:= strtoint(Edit2.Text);//个数
while j<x2 do begin
s1:='';
t1:=random(x1);
t2:=t1;
while t1=t2 do begin
t2:=random(x1);
end;
for i:=0 to x1-1 do begin
if (i=t1) or (i=t2) then begin
s1:=s1+chr(byte((random(26)+65)));
Continue;
end;
s1:=s1+inttostr(random(9));
end;
with at_mnumtemp do begin
try
Append;
FieldByName('mnum').AsString := s1;
post;
j:=j+1;
except
Cancel;
end;
end;
end;
Label3.Caption := inttostr(at_mnumtemp.RecordCount);
ShowMessage('ok');
//ShowMessage(chr(t1));
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -