'************************************
'截取文字长度函数
'输入参数:
' 1、文字内容
' 2、文字最大长度
'************************************
Function Cut_Title(Title,TLen)
Dim k,i,d,c
Dim iStr
k=0
d=StrLen(Title)
iStr=""
For i=1 To Len(Title)
c=Abs(Asc(Mid(Title,i,1)))
If c>255 Then
k=k+2
Else
k=k+1
End If
iStr=iStr&Mid(Title,i,1)
If CLng(k)>CLng(TLen) Then
iStr=iStr&".."
Exit For
End If
Next
Cut_Title=iStr
End Function
'*******************************
'检测文字长度函数
'输入参数:
' 1、文字内容
'*******************************
Function StrLen(strText)
Dim k,i,c
k=0
For i=1 To Len(strText)
c=Abs(Asc(Mid(strText,i,1)))
If c>255 Then
k=k+2
Else
k=k+1
End If
Next
StrLen=k
End Function
dim tlComeText'传递变量到toumaoTextLength函数中:::
dim tli,tlText'toumaoTextLength的临时变量:::
dim tlInHtml,tlInHtml1'状态变量,标记是否在小于号大于号之间,是否在&和;之间且在小于号大于号之外:::
dim tlChinese,tlEnglish,tlNumber,tlFuHao'汉字个数,英文个数,数字个数,空格个数:::
Sub toumaoTextLength(tlComeText)
'统计字数用的,绕过HTML字符,只统计实际显示的字数:::
tlInHtml=0
tlInHtml1=0
tlChinese=0
tlEnglish=0
tlNumber=0
tlFuHao=0
For tli=1 to Len(tlComeText)
tlText=Mid(tlComeText,tli,1)
If tlText="<" Then
'碰到小于号,进入HTML代码内部,停止统计:::
tlInHtml=1
ElseIf tlText=">" Then
'离开HTML代码,要开始统计:::
tlInHtml=0
Else
'其它字符,可能是要统计的字符,也可能是HTML代码字符:::
If tlInHtml=0 Then
'在HTML外部,要统计字数:::
If tlText="&" Then
'进入特殊符号之中,统计时要注意,多个字符代表一个字符:::
tlInHtml1=1
ElseIf tlText=";" Then
'分号是特殊符号的结束标志:::
If tlInHtml1=1 Then
'在进入符殊符号后碰到分号,表求离开特殊符号,字符数要加1:::
tlInHtml1=0
tlEnglish=tlEnglish+1
Else
'在特殊符号外面碰到分号,它就是一个分号:::
tlFuHao=tlFuHao+1
End If
ElseIf tlInHtml1=0 Then
'不在特殊符号区域内
If Asc(tlText)<0 Then
tlChinese=tlChinese+1
ElseIf Asc(tlText)>=48 And Asc(tlText)<=57 Then
tlNumber=tlNumber+1
ElseIf (Asc(tlText)>=65 And Asc(tlText)<91) Or (Asc(tlText)>=97 And Asc(tlText)<123) Then
tlEnglish=tlEnglish+1
ElseIf tlText=" " Then
tlEnglish=tlEnglish+1
ElseIf tlText=vbCr Or tlText=vbLf Or tlText=vbCrLf Then
'回车不算字符
Else
tlFuHao=tlFuHao+1
End If
End If
End If
End If
Next
End Sub