Delphi中random函数产生的随机数怎么在DBGird中逐一输出? 30

做了一个自动值班安排表数据库表中5个字段,从一个表中先进行查询,再从符合条件的数据中随机产生24条记录,再把这24条记录插入到新表中,只插入前3个字段循环没有问题,但是会... 做了一个自动值班安排表
数据库表中5个字段,从一个表中先进行查询,再从符合条件的数据中随机产生24条记录,再把这24条记录插入到新表中,只插入前3个字段
循环没有问题,但是会时不时出现不明原因的重复,动态调试发现产生的随机数没有重复,是不是在输出时出现了错误,求高手解答,代码如下
procedure TForm6.Button3Click(Sender: TObject);
var
i,j,k,count:integer;
order:Integer;
pt:integer;
rang: array[0..24] of Integer;
ssw,ssj:String;
begin
if (button1.ModalResult =0) or (button4.ModalResult =0) then
showmessage('请先进行查询')
else
begin
pt:=0;
rang[0]:=-1;
for i := 1 to 25 do begin
randomize; //初始化内置的随机数生成器
order:=randomrange(0,Query1.RecordCount-1);
j:=pt;
count:=0;
while j>pt-5 do begin
if j<1 then break;
if rang[j]=order then begin
order:=(order+1)mod 24;
j:=pt;
count:=count+1;
if count>24 then begin
messagebox(0,'失败','ERROR',MB_ICONERROR);
exit;
end;
continue;
end;
j:=j-1;
end;
pt:=pt+1;
rang[pt]:=order;
DataSource1.DataSet.RecNo:=order;
DataSource2.DataSet.RecNo:=i;
DataSource2.DataSet.Open;
ssw:=DBGrid2.DataSource.DataSet.Fields[3].Text;
ssj:=DBGrid2.DataSource.DataSet.Fields[4].Text;
代码没有贴完,后面的只是Updata了,动态调试过了,产生的随机数完全符合要求,求高手指教这段代码有没有问题,或者可以换种方法输出,麻烦贴下代码,跪谢
展开
 我来答
无言织天
2010-05-19 · TA获得超过2368个赞
知道大有可为答主
回答量:2206
采纳率:66%
帮助的人:817万
展开全部
这是哪位大神提的,看不懂
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式