51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

12
返回列表 发新帖
楼主: gzj_06
打印 上一主题 下一主题

[原创] 当变量的值中出现括号时会出错,该怎么办

[复制链接]

该用户从未签到

21#
 楼主| 发表于 2007-7-25 14:48:45 | 只看该作者
出现错误的情况找出来了,我的调用语句是在循环里的,即:
For i = 0 to objectcount
   innerText(i) = newString (innerText(i))     '调用newString函数
Next
当执行到调用函数语句时,就去调用Function newString (myString),第一次循环执行的结果是innertext(0)="放羊的星星第20集\(1\)",这是没问题的,但当执行第二次循环时,问题就出现了,按道理myString的值应该变为innertext(1)的值,但奇怪的是没变,仍然是innertext(0)的值,即"放羊的星星第20集\(1\)",第2次循环后innertext(1)的值没变,仍为"放羊的星星第20集(2)",而innertext(0)的值却变为"放羊的星星第20集\\\(1\\\)",请问哪位高手,这到底是怎么回事

[ 本帖最后由 gzj_06 于 2007-7-25 14:52 编辑 ]
回复 支持 反对

使用道具 举报

该用户从未签到

22#
 楼主| 发表于 2007-7-25 15:22:32 | 只看该作者
貌似是与Function中参数传递的方式有关的,不知默认是哪种,是ByVal还是ByRef,但奇怪的是我之前用的Function不是没有出现这个问题吗

P.S. 我之前用的Function见15#
回复 支持 反对

使用道具 举报

该用户从未签到

23#
发表于 2007-7-25 15:24:34 | 只看该作者

能否把全部代码贴出来看看

帮你debug一下
回复 支持 反对

使用道具 举报

该用户从未签到

24#
 楼主| 发表于 2007-7-25 15:53:56 | 只看该作者

回复 #23 jackymail 的帖子

谢谢,问题已解决,原来是在两段循环中同时用了i这个变量导致的
  1. For i=0 to objectCount
  2.         If innerText(i)=" " Then
  3.                 innerText(i + 1) = newString (innerText(i + 1))                '调用newString函数
  4.         End If
  5. Next

  6. Function newString(myString)
  7.         Dim specialstring,stringcount
  8.         specialstring = "\,$,(,),*,+,.,[,],?,^,{,},|"   '自己加,"\"放第1个
  9.         stringcount = Int(Len(specialstring)/2)
  10.         specialstring = Split(specialstring,",",-1,1)
  11.         For i = 0 To stringcount
  12.                 myString = Replace(myString, specialstring(i), "\"& specialstring(i))
  13.         Next
  14.         newString = myString
  15. End Function
复制代码
回复 支持 反对

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-9-29 09:29 , Processed in 0.096478 second(s), 21 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表