2008年08月29日 星期五 [集日] [旧版首页]
我不介意你恨我啵一个一首歌真爱地图相反词来跳舞吧
爱在现实面前雨霖铃树叶的崇拜日不落完美故事冰冰
快乐童话嘟嘟娃娃路太弯差一点让我看着你客串情人
当前位置:首页 >> VFP专区 >> 怎样随机获取一个表的规定记录数
在线连续剧免费播放:     五星大饭店     奋斗     血色浪漫     家有儿女     荣归     大明天子     连城诀    

怎样随机获取一个表的规定记录数

作者:  发布时间:2005-03-19 >>  -收藏本页-

*!* 功能:根据数组返回其中的n个内容的连接字符串
*!* 参数:
*!*  taQueCode 数组的内容,引用方式调用
*!*  tnQueCount 取多少个元素
*!* 返回值:
*!*  随机tnQueCount个元素的连接字符串,如果数组个数不够,返回全部数组连接字符串.
*!* 调用方式 to_getListCode(@laQuestion, 3)
*!* 修改记录: 2000.09.03 创建 天外闲人
select cQueID from tbQuestion into array laQuestion

if _tally <= 0
 =messagebox('没有题目存在,无法进行考试!!')
 return .f.
endif

Local lcGetCode &&题目编号字符串
lcGetCode = to_getListCode(@laQuestion, gn_queCount)
? lcGetCode

return
***********************************************************

#DEFINE RAND_SORT_COUNT 4 &&洗牌的次数

function to_getListCode
 parameters taQueCode, tnQueCount &&考试题目数
 external array taQueCode
 
 dimension laQueCode[1]
 acopy(taQueCode, laQueCode)
 
 Local lcReturn, lnIndex
 lcReturn = ''
 
 *!* 如果题目数目少,直接返回!
 lnACount = alen(laQueCode)
 if tnQueCount >= lnACount
  for lnIndex = 1 to lnACount
   lcReturn = lcReturn + ' ' + laQueCode[lnIndex]
  endfor
  return lcReturn
 endif
 dimension laTemp[lnACount]

 Local lnTemp01 &&临时变量,用于循环次数
 Local lnRandAt &&洗牌的随机数
 Local lnSkipCount &&取牌次数
 Local lnStep &&洗牌次数
 Local lnAtIndex &&进牌数组位置
 
 for lnTemp01 = 1 to RAND_SORT_COUNT 
  lnRandAt = int(rand() * lnACount)
  lnSkipCount = iif( lnRandAt >= (lnACount + 1)/2, lnRandAt, lnACount - lnRandAt)
  lnAtIndex = 0
  for lnStep = 0 to lnSkipCount - 1
   if (lnRandAt - lnStep) > 0
    lnAtIndex = lnAtIndex + 1
    laTemp[lnAtIndex] = laQueCode[lnRandAt - lnStep]
*    ? lnAtIndex
*    ? laTemp[lnAtIndex]
   endif
   if (lnACount - lnStep) > lnRandAt
    lnAtIndex = lnAtIndex + 1
    laTemp[lnAtIndex] = laQueCode[lnACount - lnStep]
*    ? lnAtIndex
*    ? laTemp[lnAtIndex]
   endif
  endfor
  acopy(laTemp, laQueCode)
 endfor

 lnBegin = int(rand() * lnACount)
 for lnTemp = 1 to tnQueCount
  lcReturn = lcReturn + ' ' + ;
   iif(lnBegin + lnTemp > lnACount, ;
   laQueCode[lnBegin + lnTemp - lnACount], ;
   laQueCode[lnBegin + lnTemp])
 endfor
 return lcReturn
endfunc

·本文总评分:0 分 给此网页评分:
·推荐给好友或网友
网址: UBB代码:
1楼 过客 认为:发表时间:2005年11月08日 10:04
有用!!
我也说两句……  
用户名: 密码: 匿名发表 登陆 注册
图 像:
·请您对您的言行负责,遵守中华人民共和国有关法律、法规,尊重网上道德;
·承担一切因您的行为而直接或间接导致的民事或刑事法律责任;
·留言板管理人员有权保留或删除其管辖留言中的任意内容。
标题
关键字:音乐欣赏 益智游戏 开口一笑 网站建设 JAVASCRIPT VFP开发 常用下载 哲理小故事
除特别说明,本站点所有内容和作品都按照创作共用方式授权
本站点及发布平台统一使用 eaccelerator 优化,特此感谢。
联系站长 天外闲人 版权所有 琼ICP备05003420号 QQ群:39137597
[访问计数: 1649136]
alexa排名 | 191235