首页 > 新闻动态 >  

新闻动态
NEWS

asp变量的传值实践

添加时间:2013-9-20 21:58:14 点击量:

  本语句是欲实现截取字符串,

  log_title=titleb(readtextall,30)

  titleb 是一个字符串空白字符过滤空白字符并截取右边30位的函数。

  但是在实际过程中发现,虽然能得到要得到的log_title,但是 readtextall变量也变化了,空白字符也被替换掉了,而这并不是本意。

  function titleb(str,strlen)

  str=replace(replace(replace(str,chr(13),""),chr(10),""),chr(32),"")

  dim l,t,c,i

  l=len(str)

  i=0

  t=0

  for i=1 to l

  c=Abs(Asc(Mid(str,i,1)))

  if c>255 then

  t=t+2

  else

  t=t+1

  end if

  if t>=strlen then

  titleb=right(str,i)&"…"

  exit for

  else

  titleb=str&""

  end if

  next

  end function

  改成如下的方式,则没有错

  readtextallbak=readtextall

  log_title=titleb(readtextall,30)

  结论

  首先明确几点

  1、ByVal传值不会改变全局变量的值。

  2、ByRef传值会改变全局变量的值。

  3、系统默认的是ByRef传值。

  如果改成

  function titleb(ByVal str,strlen)

  不会有错

  更多请参考:http://www.gjprj.cn/news_jc.asp?id=6

分享到: