| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 796 人关注过本帖
标题:有关数组使用问题
只看楼主 加入收藏
TZTJ
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:737
专家分:115
注 册:2008-1-15
结帖率:100%
收藏
 问题点数:0 回复次数:5 
有关数组使用问题
请教各位高手,b是数组名,以下代码表示有何问题?如果遇到b(k)为空值时,也就是正好被删除,就不能运行.如何完善这段代码?
for i=1 to 6
...................
ADEL(b,i)
endfor
m=0
g=0
FOR k=1 TO ALEN(b)
locate FOR  EMPTY(kmname) AND bjname=b(k) AND jb!=m (问题主要出在这里)
IF FOUND()
m=jb
replace kmname WITH ALLTRIM(thisform.list2.Value)  
g=g+1
ADEL(b,k)

ENDIF
IF g>3
EXIT
ELSE
LOOP
ENDIF

ENDFOR


[ 本帖最后由 TZTJ 于 2011-8-24 09:16 编辑 ]
搜索更多相关主题的帖子: 如何 
2011-08-24 09:10
hu9jj
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:红土地
等 级:贵宾
威 望:400
帖 子:11807
专家分:43421
注 册:2006-5-13
收藏
得分:0 
为什么要删除数组中的成员?删除之后数组的成员就会减少,例如原来定义的数组下标为10,循环从1到10使用数组下标不会出错,如果你在循环中删除了数组一个成员,数组的最大下标就成了9,循环到b(10)时就会下标出界产生错误。
要清空数组,可以直接给数组或其中的成员赋值为零或空。

活到老,学到老!http://www.(该域名已经被ISP盗卖了)E-mail:hu-jj@
2011-08-24 09:25
TZTJ
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:737
专家分:115
注 册:2008-1-15
收藏
得分:0 
首先感谢hugjj.好象使用adel()数组大小不改变,只不过它相应的値为.F.我用 DISPLAY MEMORY LIKE b也查看它的值确实这样.
但我想用if b(k)=.f.
         loop
         else
..............
         endif
做判断不能运行
2011-08-24 09:49
panpende
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:4
帖 子:528
专家分:963
注 册:2009-4-27
收藏
得分:0 
if b(k)=.f. 错误。因为数组中的各个值的性质不是逻辑型。只是在使用adel()后,最后产生的元素的值是逻辑型的 F。建议采用 IF TYPE('B(40)'='L'
2011-08-24 12:17
TZTJ
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:737
专家分:115
注 册:2008-1-15
收藏
得分:0 
感谢!还是hugjj的提示,让我找到了解决问题的办法.采取赋值.

[ 本帖最后由 TZTJ 于 2011-8-24 15:53 编辑 ]
2011-08-24 15:48
lsh04
Rank: 2
等 级:论坛游民
威 望:3
帖 子:33
专家分:15
注 册:2017-6-22
收藏
得分:0 
回复 2楼 hu9jj
删除数组元素,数组的大小不会变——其实只是删除了某个元素的值,后面的值会移位补充,数组总大小不变!
2020-09-09 09:42
快速回复:有关数组使用问题
数据加载中...
 
   



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

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