//产生一个随机数. procedure TForm1.BitBtn2Click(Sender: TObject); var i,K:integer; begin i:=9999; randomize; k:=random(i); // 随机数 AdoQry_tmp.Close; Adoqry_tmp.SQL.Clear; adoqry_tmp.SQL.Text:='select PWD from ZK_KW_ROOM where PWD='+Inttostr(k)+''; Adoqry_tmp.Open; //进行检查, 如果数据表中不存在此数据则, 保存到表中, 如果已存在, 则继续产生随机数. if Adoqry_tmp.RecordCount=0 then begin AdoTable1.Append; // 在此, 我将"试室保密号"存入了ID 字段. Adotable1.FieldByName('ID').AsString:=IntToLGStr(k,4); Adotable1.FieldByName('PWD').AsInteger:=K; Adotable1.Post; //保存。 //添加到左边的列表中. // Listbox1.Items.Add(IntToLGStr(k,4)); end; end;把上面的改成一个过程,连续运行这一过程10次。 for K:= 1 to 10 do begin MakeRandom(); // 必要时对产品的随机数排序。
end; 不知这样可否。
MyArray = array of Integer;var Form1: TForm1; a1: MyArray;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject); var I: Integer; begin for I := Low(a1) to High(a1) do begin ShowMessage(IntToStr(a1[I])); end; end; procedure TForm1.FormCreate(Sender: TObject); var I, J, temp: Integer; begin SetLength(a1, 10); for I := 0 to 9 do begin a1[I] := I; end; Randomize; for I := 0 to 9 do begin J := Random(10); if I <> J then begin temp := a1[J]; a1[J] := a1[I]; a1[I] := Temp; end; end; end;可以根据需要将动态数组和随机数范围增大, 以产生符合自己要求的数字
--方法1 --建立随机整数,也可以是浮点 --查询不到则insertdeclare @I int declare @iRND int declare @MAXCOUNT INT set @I=0 set @MAXCOUNT = 10 WHILE @I<@MAXCOUNT begin Set @iRND = Cast(Rand() * 1000 as int) If not Exists(select * from MyTable where MyRand=@iRND) begin Insert Into MyTable values(@iRnd) set @I=@I+1 end end--方法2 --产生GUID --替换掉其中的-字符 --剩下16进制的长字符串,直接插入即可不用考虑是否重复; --如:0D3BBF5B8A444C5E98F95EFEE648D68C --注意,该处返回是string 类型。 Insert Into MyTable value(Replace(newid(),'-',''))
procedure TForm1.BitBtn2Click(Sender: TObject);
var
i,K:integer;
begin
i:=9999;
randomize;
k:=random(i); // 随机数 AdoQry_tmp.Close;
Adoqry_tmp.SQL.Clear;
adoqry_tmp.SQL.Text:='select PWD from ZK_KW_ROOM where PWD='+Inttostr(k)+'';
Adoqry_tmp.Open;
//进行检查, 如果数据表中不存在此数据则, 保存到表中, 如果已存在, 则继续产生随机数.
if Adoqry_tmp.RecordCount=0 then
begin
AdoTable1.Append;
// 在此, 我将"试室保密号"存入了ID 字段.
Adotable1.FieldByName('ID').AsString:=IntToLGStr(k,4);
Adotable1.FieldByName('PWD').AsInteger:=K;
Adotable1.Post; //保存。
//添加到左边的列表中.
// Listbox1.Items.Add(IntToLGStr(k,4));
end;
end;把上面的改成一个过程,连续运行这一过程10次。
for K:= 1 to 10 do
begin
MakeRandom();
// 必要时对产品的随机数排序。
end;
不知这样可否。
Form1: TForm1;
a1: MyArray;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
var
I: Integer;
begin
for I := Low(a1) to High(a1) do
begin
ShowMessage(IntToStr(a1[I]));
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
var
I, J, temp: Integer;
begin
SetLength(a1, 10);
for I := 0 to 9 do
begin
a1[I] := I;
end;
Randomize;
for I := 0 to 9 do
begin
J := Random(10);
if I <> J then
begin
temp := a1[J];
a1[J] := a1[I];
a1[I] := Temp;
end;
end;
end;可以根据需要将动态数组和随机数范围增大, 以产生符合自己要求的数字
--建立随机整数,也可以是浮点
--查询不到则insertdeclare @I int
declare @iRND int
declare @MAXCOUNT INT
set @I=0
set @MAXCOUNT = 10
WHILE @I<@MAXCOUNT
begin
Set @iRND = Cast(Rand() * 1000 as int) If not Exists(select * from MyTable where MyRand=@iRND)
begin
Insert Into MyTable values(@iRnd)
set @I=@I+1
end
end--方法2
--产生GUID
--替换掉其中的-字符
--剩下16进制的长字符串,直接插入即可不用考虑是否重复;
--如:0D3BBF5B8A444C5E98F95EFEE648D68C
--注意,该处返回是string 类型。
Insert Into MyTable value(Replace(newid(),'-',''))