可用的ASP无重复数字随机函数, 数组实现, 并应用于随机显示记录集 |
经脚本之家站长测试可用的ASP无重复数字随机函数, 数组实现, 并应用于随机显示记录集 作用: 本函数适用于随机显示小数量的随机不重复数字 本函数适用于显示小数量的随机不重复记录集 为了不影响效率, 上限超过一千, 不建议使用本函数 shawl.qiu 2006-09-06 http://blog.csdn.net/btbtd 主内容: 函数及应用函数随机显示100条记录 linenum 复制代码 代码如下: <% dim rs, rNum dim temp set rs=createObject("adodb.recordset") rs.open "select top 100 * from rnd_v1",conn,1 rNum=rs.recordCount-1 for each temp in fRndNoRpt(0,rNum) rs.move temp response.write rs("sbcat") response.write "<br/>" rs.movefirst next rs.close set rs=nothing shawl.qiu code function fRndNoRpt(lwNum,upNum) ASP 无重复数字随机函数, 数组实现, By shawl.qiu 2006-09-06 http://blog.csdn.net/btbtd 注意: 随机数超过1000, 不建议使用本函数. 参数说明: lwNum 为 数字数组下限, 如: 1 upNum 为 数字数组上限, 如: 100 sample call: dim t for each t in fRndNoRpt(1,100) response.write t&"<br/>" next if upNum<1 or isNull(upNum) or upNum="" or isNumeric(upNum)=false then exit function if lwNum<0 or isNumeric(lwNum)=false then exit function dim num, temp dim ar() redim ar(upNum) dim j:j=0 for temp=lwNum to upNum num=num&"."&temp&"." next randomize do until num="" temp=int((upNum-lwNum+1)*rnd+lwNum) if inStr(num,"."&temp&".")<>0 then num=replace(num,"."&temp&".","") ar(j)=temp j=j+1 end if loop fRndNoRpt=ar erase ar end function shawl.qiu code response.write "<p/>使用随机数函数显示1至100的不重复随机数 1:<br/>-----------------------<br/>" for each temp in fRndNoRpt(1,100) response.write temp&"<br/>" next response.write "<p/>使用随机数函数显示1至100的不重复随机数 2:<br/>-----------------------<br/>" temp=join(fRndNoRpt(1,100),"-") response.write mid(temp,1,len(temp)-1) %> |