asp关于数组取值

来源:百度知道 编辑:UC知道 时间:2024/06/23 01:55:55
<% sendto=upload.form("sendto") %>
<%my=split(sendto,"|")%>
<% for each i in my %>
<%go=split(i,":") %>
<%a= go(0) %>
<%b= go(1) %>
<%c= go(2) %>
<% next %>
my为一个数组 如 XXX:YY:ZZZZ 其中字符数不定,但保证数组只有三个值,
程序出来每次都提示
Microsoft VBScript 运行时错误 (0x800A0009)
下标越界: '[number: 0]'
谁可以指示一下

下标越界是用split经常容易出现的错误,出现的原因是字符这空或未出现期望的分隔符,较好的办法是在使用split前用instr判断一下是否包含指定分隔符,如在go=split(i,":")时最好用:
if instr(i,":")<>0 then
go=split(i,":")
a= go(0)
b= go(1)
c= go(2)
end if

像你出现的问题可以用插入输出语句的方法具体查一下sendto中是否包含"|",及i中是否包含":"。

我用你的程序跑了一下,如果数据正确应该没有问题
出现你上面的情况,最大的可能就是在sendto的最后多了一个“|”
你检查一下。