首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > VFP >

回复下标超界咋回事

2013-07-23 
回复下标超界怎么回事?回复下标超界怎么回事?thisform.List1.clearDIMENSION c(77,5)DIMENSION m(1,10)m(1

回复下标超界怎么回事?
回复下标超界怎么回事?
thisform.List1.clear
DIMENSION c(77,5)
DIMENSION m(1,10)
m(1,1)=35
FOR i=1 TO 77
FOR k=1 TO 35
thisform.List1.additem(ALLTRIM(STR(k,2)))
ENDFOR
FOR j=1 TO 5
c(i,j)= INT(m(1,1)*RAND()+1)
thisform.List1.RemoveListItem(c(i,j))
m(1,1)=m(1,1)-1
ENDFOR
thisform.list1.clear   
ENDFOR
thisform.timer1.Enabled=.F.


thisform.List1.RemoveListItem(c(i,j))
回复下标超界
怎么回事?


[解决办法]
For k=1 To 35
Thisform.List1.AddItem(Alltrim(Str(k,2)))
Endfor
这段向 List1 添加了35行。

For i=1 To 77
要循环77次,每次循环都  Thisform.list1.Clear 
所以当循环到 36 时,就 Thisform.List1.RemoveListItem(c(i,j)) 报错了,因为 List1 只有35行
[解决办法]

Create Cursor t1 (zd1 i)
For lnI=1 To 35
Insert Into t1 Values (lnI)
Endfor
Rand(-1)
Select Int(Reccount('t1')*Rand()+1) As 随机数,* From t1 Order By 1
*-- 这时你看看 zd1 列就是不重复的 1-35 的随机数

热点排行