| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 939 人关注过本帖
标题:[求助]在表中给一个字段随机编号(又有新问题)
只看楼主 加入收藏
cxx7
Rank: 1
等 级:新手上路
帖 子:37
专家分:0
注 册:2005-12-27
收藏
 问题点数:0 回复次数:5 
[求助]在表中给一个字段随机编号(又有新问题)

(问一下,我要在表(假如表有100个记录)中给一个字段填上数字1-100,不能重复,而且,要随机填充,我该怎么做?

先谢谢了!

[此贴子已经被作者于2006-12-5 13:05:38编辑过]

搜索更多相关主题的帖子: 字段 随机 数字 记录 
2006-12-04 11:20
Tiger5392
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:88
帖 子:2775
专家分:2237
注 册:2006-5-17
收藏
得分:0 
生成一个随机数,满足:(1)1-100之间;(2)与前面已生成的且已被保存在表中的随机数不重复;(3)没有保存在表中,则写入表中,重复生成随机数,直到找到100个这样的随机数为止.

感言:学以致用。 博客:http://www./blog/user14/65009/index.shtml email:Tiger5392@
2006-12-04 11:58
cxx7
Rank: 1
等 级:新手上路
帖 子:37
专家分:0
注 册:2005-12-27
收藏
得分:0 
写成这样,可是循环至不停,只能通过任务管理器关闭VFP,怎么办呀!
n = int(rand()*100)+1
IF n<=RECCOUNT() AND n !=0
go top
REPLACE xh WITH n
endif
i = 2
do while i<=RECCOUNT()
n = int(rand()*100)+1
IF n<=RECCOUNT() AND n !=0
loca for xh = n
if !found()
GO i
repl xh with n
i=i+1
ENDIF
endif
enddo
2006-12-05 13:04
ght0803
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2006-11-30
收藏
得分:0 

这个循环跳不出来的主要原因是 当再次查找跟所产生的随机数不一样的 xh的时候,一直能找到跟该随机数相等的xh。所以循环就一直停留在i=2处。这样改一下应该可以:

n = int(rand()*100)+1
IF n<=RECCOUNT() AND n !=0
go top
REPLACE xh WITH n
endif
i = 2
do while i<=RECCOUNT()
n = int(rand()*100)+1
IF n<=RECCOUNT() AND n !=0
replace xh with 0 for recno()>i
loca for xh = n
if !found()
GO i
repl xh with n
i=i+1
endif
Endif
enddo

2006-12-05 15:48
Tiger5392
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:88
帖 子:2775
专家分:2237
注 册:2006-5-17
收藏
得分:0 
CREATE CURSOR TEMP (NO N(3))
DO WHILE RECCOUNT()<100
DO WHILE .T.
XH=INT(RAND()*100)+1
IF BETWEEN(XH,1,100)
LOCATE ALL FOR NO=XH
IF EOF()
EXIT
ENDIF
ENDIF
ENDDO
INSERT INTO TEMP (NO) VALUES (XH)
ENDDO
SELECT * FROM TEMP INTO TABLE XH

感言:学以致用。 博客:http://www./blog/user14/65009/index.shtml email:Tiger5392@
2006-12-05 16:57
gxtynh168
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2006-10-2
收藏
得分:0 
又学了一个好用的功能
2007-03-15 12:11
快速回复:[求助]在表中给一个字段随机编号(又有新问题)
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.014720 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved