哥哥们救我呀 asp数组问题

hgzhss 2004-04-16 11:12:37
我想写个函数中间用到传递数组
但是我不会
我的函数是
<%
sub shengcheng(template,yuan(),tihuan(),szgs,shuchu)
dim fso, strhtml,HtmlFileName,strnohtml,yuan1(7),tihuan1(7)
set fso=server.createobject("scripting.filesystemobject")
htmlfilename=server.mappath(template)
set ctf=fso.opentextfile(htmlfilename,1,,0)
do while ctf.atendofstream<>true
str=ctf.readline
strnohtml=strnohtml&str
loop
ctf.close
set ctf=nothing

yuan1()=yuan
tihuan()=tihuan

yuanxing=strnohtml
int i
for i=0 to szgs
yuanxing=replace(yuanxing,yuan(i),tihuan(i))

next

ymm=year(now)&month(now)&day(now)&hour(now)&minute(now)&second(now)&"new.html"

file1=server.mappath(shuchu&ymm)
set fout=fso.createTextfile(file1)
fout.writeline yuanxing
fout.close
set fout=nothing
set fso=nothing

response.write("sdfsdf")
end sub
%>

调用是::

<%@LANGUAGE="VBSCRIPT" CODEPAGE="CP_ACP"%>
<!--#include file="../卫华网站/inc/tihuan.inc" -->
<% template="./new.html"
dim yuan(6),tihuan(6)
yuan(0)="$$new_bt$$"
yuan(1)="$$yhzh$$"
yuan(2)="$$new_date$$"
yuan(3)="$$new_ly$$"
yuan(4)="$$new_zy$$"
yuan(5)="$$new_zw$$"
tihuan(0)="1"
tihuan(1)="2"
tihuan(2)="3"
tihuan(3)="4"
tihuan(4)="5"
tihuan(5)="6"
shuchu="./"
call shengcheng(template,yuan(),tihuan(),7,shuchu)
Response.Write("sdfasdf")

%>

但是他老是报:

Microsoft VBScript 运行时错误 错误 '800a0009'

下标越界

/rrrrr/zhuanhuan.asp,行18


帮忙看一下吧
...全文
38 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
threezxw 2004-04-16
  • 打赏
  • 举报
回复
主意数组的最大值
龙华 2004-04-16
  • 打赏
  • 举报
回复
在for循环中加一个response.write看看结果。
yuan1()=yuan
tihuan()=tihuan
好象这里错了吧。

zmhqyw 2004-04-16
  • 打赏
  • 举报
回复
yuanxing=strnohtml
int i
for i=0 to szgs
yuanxing=replace(yuanxing,yuan(i),tihuan(i))


这里的szgs应该是数组中的元素个数。

报下标越界的错误当然是因为在循环中引用的最后一个元素不存在。

也就是

yuan(szgs)和tihuan(szgs)

解决的办法也简单。

for i=0 to szgs - 1

这样就不会越界了。

如果仍然出现这个错误,那就查一下数组初始化的代码,看看szgs的值是不是预期的。
zhuomaocn 2004-04-16
  • 打赏
  • 举报
回复
你定义了yuan(6)

这个是指有7个元素的数组。注意vbs中数组的定义中的数字指的是数组的上限。

szgs 的值是7

这句话就越界了啊yuanxing=replace(yuanxing,yuan(i),tihuan(i))




hgzhss 2004-04-16
  • 打赏
  • 举报
回复
不是我在传的时候都有错误

dim yuan(6),tihuan(6)
yuan(0)="$$new_bt$$"
yuan(1)="$$yhzh$$"
yuan(2)="$$new_date$$"
yuan(3)="$$new_ly$$"
yuan(4)="$$new_zy$$"
yuan(5)="$$new_zw$$"
tihuan(0)="1"
tihuan(1)="2"
tihuan(2)="3"
tihuan(3)="4"
tihuan(4)="5"
tihuan(5)="6"

call shengcheng(template,yuan(),tihuan(),7,shuchu)

这样写有什么错误呀
lewisdoll 2004-04-16
  • 打赏
  • 举报
回复
你用ubound()直接获取不是更好吗?

for i= 0 to ubound(yuan)
...
next
hgzhss 2004-04-16
  • 打赏
  • 举报
回复
不对呀
我怎么还是不行呀
谁有调用数组的案例呀
给发一个把
谢谢了

28,391

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧