易语言 数组成员引用下标超出定义范围

.版本2.子程序鼠标.参数名字,文本型.局部变量返回文本,文本型.局部变量返回数组,文本型,,"0"识字_坐标返回(,,,,名字,“ffffff-000000”,).如果... .版本 2

.子程序 鼠标
.参数 名字, 文本型
.局部变量 返回文本, 文本型
.局部变量 返回数组, 文本型, , "0"

识字_坐标返回 (, , , , 名字, “ffffff-000000”, )
.如果真 (返回文本 ≠ “-1|-1|-1”)
返回数组 = 分割文本 (返回文本, “|”, )
延时 (100)
鼠标_移动 (到数值 (返回数组 [2]), 到数值 (返回数组 [3]))
输出调试文本 (“返回数组”)
按照教程的代码写,找不到那里出错了。
展开
 我来答
无和有
高粉答主

2019-07-06 · 自由是我的最大追求,无中生有
无和有
采纳数:65 获赞数:45777

向TA提问 私信TA
展开全部

这是因为所取值的范围超出了数据库里的数据,就是没有依靠数据库中的数据取值,这样肯定会出现这种提示,比如数据库里只有两个数据1和2,但是所编程的程序里取值3,这样就会导致数据库识别不出,然后呈程序中断

一般的易语言程序员会在用正则表达式、分割文本,从网络中获取文本进行分割时出现数组成员引用下标超出定义范围

扩展资料

可以采用如下建议防止数组成员引用下标超出定义范围导致程序意外退出

方法很简单,就是在取数组成员的时候先判断一下数组成员数是否正常。你需要用到的命令是,取数组成员数(),易语言中有该函数的详细说明!

举个例子:

我们想采集某个网站的内容,这个网站内容包含的有标题、作者、发布时间、内容。我们用正则表达式采集的时候发现程序提示数组成员引用下标超出定义范围

那么我们就看看是再哪个页面出现问题的,找到之后发现这篇文章居然没有作者,应该是网站管理员疏忽忘记添加了。这时我们用正则表示取出的数组成员数只有3个,我们再取第4个的时候就会出错。

解决方法是在我们要取正则表达式获取的内容之前先判断一下取数组成员数是否等于4,如果等于4我们就直接取内容,如果不等于4那么我们只取3个内容,自己把作者补起来,或者直接跳过该页面去取正常格式的网站内容。

参考资料来源:百度经验-易语言 数组成员引用下标超出定义范围

chinaboyzyq
推荐于2018-02-12 · TA获得超过1.3万个赞
知道大有可为答主
回答量:1.3万
采纳率:89%
帮助的人:3274万
展开全部

1、这里说的是要取的数组元素,在数组中不存在。

2、比如定义了一个5元素的数组,用得时候去取第6个元素,就会造成上述错误。

3、另外,e语言数组下标是从1开始的,如果取第0个元素,也是错的。

4、图示:

5、修改方法:取定义范围内的元素或扩大数组范围。

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友685c2d4
2013-11-25 · TA获得超过249个赞
知道小有建树答主
回答量:195
采纳率:0%
帮助的人:118万
展开全部

错误原因:你的”大体图片内容“这个字节集估计是空的(没有获取到),或者中间没有中文冒号这个字节集,这样的话分割之后肯定就不成为数组了对吧,也就是数组成员数为0,而你下一行代码直接使用了 分割内容[1],引用了一个不存在的数组元素,肯定会错误。


改进方法:

  1. 在使用分割内容[1]之前,先检查数组的成员数,用命令“取数组成员数()”即可,然后判断它的值是不是>0,然后再引用数组元素。(以后编程使用数组前都要检查,这样不容易出BUG。)

  2. 如果你的大体图片内容肯定是含有中文冒号这个字节集的...那就是你之前的取回数据那里出了故障,取回的数据是空的..检查检查。但是也要看看方法1中,最好写一个异常处理,否则一旦崩溃程序就挂了。


全手打。望采纳!

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lilei3386
推荐于2017-12-15 · TA获得超过6228个赞
知道大有可为答主
回答量:4543
采纳率:50%
帮助的人:4082万
展开全部
按照你说的,如果是提示数组成员引用下标超出定义范围的话,应该是返回数组的问题,一旦返回数组的成员不到3个,那么你写的返回数组 [3]就会提示那样的错误,你检查下返回数组的成员数吧。
更多追问追答
追问
我是按教程里的代码写的 教程无错误运行 但是我照抄为什么会错误呢。再过3个返回数组应该没错啊 难道有0这个返回数组么,应该是从1开始的吧。
追答
你要看实际情况,你用下面的命令输出看看:
输出调试文本 (“数组成员数:” + 到文本 (取数组成员数 (返回数组)))
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
youtpot
2013-11-25 · TA获得超过1466个赞
知道小有建树答主
回答量:200
采纳率:0%
帮助的人:125万
展开全部
1L说的很详细,简单点说就是因为没有分割到东西,所以这个数组是空数组(0),下标为1就超出范围报错了.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式