注册 登录
编程论坛 ASP技术论坛

关于一个截字符串的代码??

cainiao158 发布于 2007-11-08 10:04, 447 次点击

<%
'*************************************************
'函数名:gotTopic
'作 用:截字符串,汉字一个算两个字符,英文算一个字符
'参 数:str ----原字符串
' strlen ----截取长度
'返回值:截取后的字符串
'*************************************************
function gotTopic(str,strlen)
if str="" then
gotTopic=""
exit function
end if
dim l,t,c, i
str=replace(replace(replace(replace(str,"&nbsp;"," "),"&quot;",chr(34)),"&gt;",">"),"&lt;","<")
l=len(str)
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
gotTopic=left(str,i) & "…"
exit for
else
gotTopic=str
end if
next
gotTopic=replace(replace(replace(replace(gotTopic," ","&nbsp;"),chr(34),"&quot;"),">","&gt;"),"<","&lt;")
end function

在很多整站程序里头,都有看到段代码,红色的那部分谁能帮忙解释下什么意思,还有就是这段代码用来干什么的,什么情况下能用的找???
5 回复
#2
alan8172007-11-08 10:12


取得字符的ASCII码的绝对值, ASCII码大于255的字符在计算机里面占2个字节, 所以t=t+2

#3
cainiao1582007-11-08 10:20
后面的问题,你还没有回答我???
#4
luofeng842007-11-08 10:21
就是一个汉字算两个字符,英文算一个字符,因为asc这个函数已经求出了它的ASSCII码值,如果长度大于所截取的字符就在后面加...
#5
alan8172007-11-08 10:25
[QUOTE]什么情况下能用的找???[/QUOTE]

已经说得很清楚了,~~~~呵呵

[QUOTE]
'*************************************************
'函数名:gotTopic
'作 用:截字符串,汉字一个算两个字符,英文算一个字符
'参 数:str ----原字符串
' strlen ----截取长度
'返回值:截取后的字符串
'*************************************************[/QUOTE]
#6
dushui2652007-11-08 11:47
我告诉你吧
一般在主页上都有新闻或者是其他的标题,这是一个计算标题长度的函数,可以规定新闻的最大长度是多少,如果超出就把后面的省略掉,加上......
这样可以防止标题换行不美观或者太长影响到布局
1