欢迎光临
我们一直在努力

随机生成不重复记录的伪函数-ASP教程,ASP应用

建站超值云服务器,限时71元/月

原理:利用一个临时数组保存好随机范围的数据(简称范围数据)索引或标识,用rnd随机生成临时数组的索引。验证临时数组索引所对应的数据,为空则视被记录过了,将随机数加一后重复验证操作直到临时数组索引对应的数据不为空,则由一个记录变量记录下对应的范围数据标识,并清空此项数据。然后进行下一个随机操作。

伪函数:

####

## 函数参数

##   范围数据数组:   一维数组。

##   随机选择的数据量: 整数。

function myrnd(范围数据数组,随机选择的数据量)

################################################################

  dim 范围数据数组维数

  dim 循环标识

  dim 随机索引

  dim 随机结果

  范围数据数组维数=ubound(范围数据数组)

  循环标识=true

  

  if 范围数据数组维数>随机选择的数据量 then

  如果 随机选择的数据量 大于 范围数据数组维数 的话就不用随机读取了,全布都列出来就是了

    randomize timer

    随机索引=fix(rnd*(范围数据数组维数+1))

    while 循环标识

      if 范围数据数组(随机索引 mod 范围数据数组)<>"" then

      数据不为空,则表示未随机选取过。

       随机索引=范围数据数组(随机索引 mod 范围数据数组)

        if 随机结果="" then

        随机结果 以","分隔每个随机值。

          随机结果=随机结果 &; ","

        end if

        随机结果=随机结果 &; 范围数据数组(随机索引)

        范围数据数组(随机索引)=""  清空该数据表示已随机过。

        循环标识=false 结束循环。

      end if

      if 随机索引>范围数据数组维数*3 then

      如果 随机索引 大于 范围数据数组维数的三倍,表示已经在 范围数据数组维数 内历遍过三次,跳出,防止死循环。

        循环标识=false

      end if

    wend

  end if

end function

应用:

  用在随机选取不重复的数据表记录。

    用getrows将数据表内id标识换成一个二维数组,然后使用该函数随机选取指定数量的id编号以","分隔,然后用in条件式将符合随机出来的id编号的数据读出来即可。

  随机选取不重复的数据。

    将所有数据放到一个一维数据,然后用该函数挑随机挑选即可。

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » 随机生成不重复记录的伪函数-ASP教程,ASP应用
分享到: 更多 (0)

相关推荐

  • 暂无文章