dim函数第三个参数设置截取字符的长度问题
来源: 阅读:971 次 日期:2016-07-05 11:14:22
温馨提示: 小编为您整理了“dim函数第三个参数设置截取字符的长度问题”,方便广大网友查阅!

dim函数的第三个参数,也就是截取字符的长度,我在设置这个的时候,出了些问题,提示无效的过程调用或参数,本文详细介绍如何解决

dim函数的第三个参数,也就是截取字符的长度,我在设置这个的时候,出了些问题:response.write mid(up_address,a(i),a(i+1)-1) & “<br />”像我上面这样写的时候,它就会报错,提示无效的过程调用或参数,

response.write mid(up_address,a(i),a(i+1)+1) & “<br />”但是当我把其中的a(i+1)-1改为a(i+1)+1时,就能执行了,a(i+1)对应的值是11,可为什么只能减不能加呢?全部代码如下:

VB code:

代码如下:

dim a(),up_address

up_address = "aaa djaldk adflj adafadfasdfa afd ad"

redim a(len(up_address))

a(0) = instr(up_address," ")

response.write a(0) & "<br />"

if a(0)<>0 then

for i=0 to len(up_address)-1

a(i+1) = instr(a(i)+1,up_address," ")

response.write mid(up_address,a(i),a(i+1)-1) & "<br />"

if a(i+1)=0 then

exit for

end if

response.write a(i+1) & "<br />"

next

end if如上代码,我是想把字符串按空格分解出来,但是mid的第三个参数那出了点问题,我本来是想这样截取的:

VB code:

代码如下:

mid(up_address,a(i),a(i+1)-a(i)-1)

‘a(i)是空格的位置

‘a(i+1)是下一个空格的位置

‘a(i+1)-a(i)-1是两个空格直间的字符长度

现在的问题是,经测试,mid的第三个参数那,无法使用减法,也就是说,我可以写a(i+1)+,但不能写a(i+1)-,想了好久,我一直不明白问题出在哪?应该怎么来解决呢?

出现这个问题是因为上面的MID函数的第三个参数出现了负数,下面是在网上找的测试的VBS代码,原理一样,如下的代码:

VBScript code:

代码如下:

dim a(),up_address

up_address = "aaa djaldk adflj adafadfasdfa afd ad"

MsgBox len(up_address) '36

redim a(len(up_address)) 'a(36)

a(0) = instr(up_address," ")

MsgBox a(0) 'a(0)=4

MsgBox a(0) & "<br />"

if a(0)<>0 then

for i=0 to len(up_address)-1

a(i+1) = instr(a(i)+1,up_address," ")

MsgBox a(i) &" "& (a(i+1)-1)‘这里的结果为34,-1,所以导致出错

MsgBox mid(up_address,a(i),a(i+1)-1) & "<br />"

if a(i+1)=0 then

exit for

end if

MsgBox a(i+1) & "<br />"

next

end if

更多信息请查看脚本栏目
由于各方面情况的不断调整与变化, 提供的所有考试信息和咨询回复仅供参考,敬请考生以权威部门公布的正式信息和咨询为准!

2025国考·省考课程试听报名

  • 报班类型
  • 姓名
  • 手机号
  • 验证码
关于我们 | 联系我们 | 人才招聘 | 网站声明 | 网站帮助 | 非正式的简要咨询 | 简要咨询须知 | 加入群交流 | 手机站点 | 投诉建议
工业和信息化部备案号:滇ICP备2023014141号-1 云南省教育厅备案号:云教ICP备0901021 滇公网安备53010202001879号 人力资源服务许可证:(云)人服证字(2023)第0102001523号
云南网警备案专用图标
联系电话:0871-65317125(9:00—18:00) 获取招聘考试信息及咨询关注公众号:
咨询QQ:526150442(9:00—18:00)版权所有:
云南网警报警专用图标
Baidu
map