网站图标
蕾仔屋屋 -之黑色依然(未完成)
.::〖蕾仔BLOG〗::.
.::〖视觉欣赏〗::.
.::〖杂物杂房〗::.
.::〖资源下载〗::.
.::〖作品展览〗::.
.::〖友情连接〗::.
.::〖留言专区〗::.


BLOG类型: [搜索]
[技术]『 ASP-vbs,对len函数处理双字节的改进 』 [原创] 阅读次数: 4195
作者:蕾仔   出处:ltroy@163.com加入时间:2005-8-4 1:05:19
例如有段字符串变量为:
a="abcd不以efg"
b=len(a)
b的值为9

但有时候为了版面设计,不让字符串宽度超过规定值时,
用len()来判断就会判断失误,所以写了以下的一个函数

<%
Function s_len(str1,num_n,sort_d) 'str1为字符串,num_n为显示左边字符串的个数,sort_d为结尾显示的符号如 ~ 或 ... 或 ** 等等 
'例如:str1="abcd不以efg"
'<%=s_len(str1,6,"....")%>
'上面输出时就系:  abcd不.... 
 length=len(str1)
 dim dd,ii
 chinese=0
 for ii=1 to length
  if asc(mid(str1,ii,1))<1 or asc(mid(str1,ii,1))>255 then '计算有多少个双字节变量
   dd=dd+1
  end if
  if dd+ii>num_n then '如果双字节变量数加上数大于规定的数(num_n),就不用循环了
   exit for
  end if
 next
 s_len=left(str1,ii) '显示左边ii(循环数)个位数
 if dd+ii>num_n then '如果实际位数(汉字算两位)超过规定的数(num_n),就在后面加上sort_d
  s_len=s_len+sort_d
 end if
End Function%>


BLOG评论 [ 2 条] [我来说两句]
作者:蕾仔 联系方式: [ 2010-5-18 21:14:45 ]
呵呵,好啊,有了也告诉我吧
作者:karesam 联系方式: [ 2010-5-18 14:29:35 ]
噢噢噢噢 刚好有用 不过太长了 因为需要快捷 偶再去试着想一个简单点的方法吧



粤ICP备16056498号-1 [功能设定]
 
Copyright @ 2001-2024 [ L.TROY's Home AND 蕾仔屋屋 ] All Rights Reserved