一级棒(Eachfun)
偷猫的个人主页
一级棒(Eachfun) - 编程园地 - 源码放送 - [ASP]字数统计函数
RSS订阅
[ASP]字数统计函数
发表时间:2004-07-22 09:22:00 关键词:编程,源码,下载,ASP

  如今谁都爱做个论坛玩玩,其实俺明白,大家都想做坛主嘛。而且,如今的论坛还支持HTML编辑,可以直接进行文字的大小、颜色、下划线等编辑,甚至于可以带图片编辑。最终提交的帖子内容往往有几千字节甚至上万字节,但是真正显示的文字不多。我们关心的是他们的帖子中显示出来是多少字对吧?下面的这个子程序绕过那些HTML控制字符,而返回实际显示的汉字、字母、数字以及符号的数量。拿去用吧。

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

本站特约顾问律师常州东晟律师事务所朱立律师(电话13915029670,QQ646146109)提醒您:
本站文章皆为作者原创,其它媒体(包括但不限于报刊、杂志、网站、电视、电台)未经作者书面许可严禁转载(或部分摘录)!
相关评论
发表评论
称呼:
QQ:
邮箱:
链接:
内容:
搜索: 百度搜索 Google搜索
Copyright©2000 - 2011 Eachfun.Com, All Rights Reserved 一级棒网络
备案号忘了带来
一级棒建站系统 http://www.eachfun.com 一级棒版权所有,未经许可不得商用!