| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2085 人关注过本帖
标题:下标越界
只看楼主 加入收藏
fwherr
Rank: 1
等 级:新手上路
帖 子:30
专家分:0
注 册:2014-6-8
结帖率:50%
收藏
已结贴  问题点数:20 回复次数:6 
下标越界
请问高人帮帮忙,
  有个问题请教大家,我在网上找了一段ASP验证码组件,结果报错,提示是:错误类型:
Microsoft VBScript 运行时错误 (0x800A0009)
下标越界: 'Int(...)'
/6-11.asp, 第 8 行
代码如下:
程序代码:
<%
  '将数字和大写字母组成一个字符串
  ychar="0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z"
  yc=split(char,",") '将字符串生成数组
     ycodenum=4 '验证码的位数,或者说成个数
  for i=1 to ycodenum
    Randomize  '初始化随机数发生器
      ycode=ycode & yc(Int((35*Rnd))) '数组一般从0开始读取,所以这里为35*Rnd
    next
     

  Response.Clear
  Response.ContentType="image/gif"
  set obj=Server.CreateObject("shotgraph.image")
  x=55 '图片的宽
  y=26 '图片的高
  obj.CreateImage x,y,8 '8是图片的颜色8位
  obj.SetColor 0,55,126,222
  obj.SetColor 1,255,255,255

    obj.CreatePen "PS_SOLID",1,0
  obj.SetBgColor 0
  obj.Rectangle 0,0,x-1,y-1
  obj.SetBkMode "TRANSPARENT"
  obj.CreateFont "Arial",136,18,1,False,False,False,False
  obj.SetTextColor 1
  obj.TextOut 5,4,ycode&" "

  img=obj.GifImage(-1,1,"")
  Response.BinaryWrite (img)

%>
怎样解决,谢谢帮忙
搜索更多相关主题的帖子: Microsoft 网上 验证码 
2015-04-07 20:29
hu9jj
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:红土地
等 级:贵宾
威 望:400
帖 子:11857
专家分:43421
注 册:2006-5-13
收藏
得分:10 
ycode=ycode & yc(Int((35*Rnd))) '数组一般从0开始读取,所以这里为35*Rnd
你的变量rnd的值是多少?假如=1的话,35*rnd则下标越界了。将这行修改为34*RND试试。

[ 本帖最后由 hu9jj 于 2015-4-9 07:43 编辑 ]

活到老,学到老!http://www.(该域名已经被ISP盗卖了)E-mail:hu-jj@
2015-04-09 07:40
fwherr
Rank: 1
等 级:新手上路
帖 子:30
专家分:0
注 册:2014-6-8
收藏
得分:0 
谢谢,
  改为 ycode=ycode & yc(Int((34*Rnd)))
也会出这样的错误:
Microsoft VBScript 运行时错误 (0x800A0009)
下标越界: 'Int(...)'
/6-11.asp, 第 8

麻烦指错在哪里 ,我想问Rnd应该怎样定义或怎样修改它的代码,谢谢

[ 本帖最后由 fwherr 于 2015-4-9 14:16 编辑 ]
2015-04-09 14:12
hu9jj
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:红土地
等 级:贵宾
威 望:400
帖 子:11857
专家分:43421
注 册:2006-5-13
收藏
得分:10 
定义一个数组变量:
yc=[35]
再将0-9、A-Z赋值到数组中试试。

活到老,学到老!http://www.(该域名已经被ISP盗卖了)E-mail:hu-jj@
2015-04-09 20:10
fwherr
Rank: 1
等 级:新手上路
帖 子:30
专家分:0
注 册:2014-6-8
收藏
得分:0 
怎样来定义:
这不是这样
 dim yc(35)
 ychar = "0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z"
 yc = split(char,",")'将字符串生成数组
 ycodenum=4 '验证码的位数,或者说成个数
  for i=1 to ycodenum
    Randomize
    ycode=ycode & yc(Int((34*Rnd)))
  next
然后怎样将再将0-9、A-Z值赋到数组??谢谢
2015-04-12 22:16
zjx333
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2013-6-26
收藏
得分:0 
回复 楼主 fwherr
yc=split(char,",") 改成 yc=split(ychar,",")
2015-04-14 17:46
fwherr
Rank: 1
等 级:新手上路
帖 子:30
专家分:0
注 册:2014-6-8
收藏
得分:0 
已经改了,还是出现这样的问题,谢谢
2015-04-18 13:26
快速回复:下标越界
数据加载中...
 
   



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

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