用VB统计中英文字符个数 王超 2001年 15期 常用的字处理软件都具有字数统计功能,在VB中这是很简单的事。程序如下:    原理:遍历整个文本中的字符,返回它们的ASCII码值即可知道该字符是中文还是英文,然后统计即可达到目的。    启动VB,新建工程,在窗体加入一个文本框,将其OLEDropMode属性设置为1-Manual(手工),MultiLine属性设为true,ScrollBars属性为3-Both;再加入两个CommandButton控件,一个Name属性为Clearbtn,Caption属性为“清空”,另一个Name属性为Tjbtn,Caption属性为“统计”;再加入两个Label控件,Label1和Label2的Caption属性都为空。    在程序中中加入如下代码:    Private Sub Form_Load()'初始化    Check1.Value = 1    Text1.text = “”    End Sub    Private Sub Clearbtn_Click()    Text1.text = “” '清空文本框    End Sub    '当拖放经过文本框时    Private Sub Text1_OLEDragOver(Data As DataObject,Effect As Long,Button As Integer,Shift As Integer,X As Single,Y As Single,State As Integer)    If Data.GetFormat(vbCFText) Or Data.GetFormat(vbCFFiles) Then    Effect = vbDropEffectCopy And Effect    Exit Sub    End If    Effect = vbDropEffectNone    End Sub    '完成拖动时    Private Sub Text1_OLEDragDrop(Data As DataObject,Effect As Long,Button As Integer,Shift As Integer,X As Single,Y As Single)    If Data.GetFormat(vbCFText) Then    Text1.text = Data.GetData(vbCFText)    '当数据类型为文本时    End If    If Data.GetFormat(vbCFFiles) Then    '当数据类型为文件时    Dim vfn    For Each vfn In Data.Files    dropfile Text1, vfn    '调用子函数,在文本框中打开文件    Next vfn    End If    End Sub    '在文本框中打开文件的子函数    Sub dropfile(ByVal text As TextBox,ByVal strfn$)    Dim ifile As Integer    ifile = FreeFile    Open strfn For Input Access Read Lock Read Write As #ifile    Dim str$,strline$    While Not EOF(ifile) And Len(str) <= 32000    Line Input #ifile,strline$    If str <> “” Then str = str & vbCrLf    str = str & strline    Wend    Close #ifile    text.SelStart = Len(text)    text.SelLength = 0    text.SelText = str    End Sub    '统计按钮被按下时    Private Sub Tjbtn_Click()    Dim s As String,temp As String    Dim i As Integer,e As Integer,c As Integer    s = Text1.text    e = 0    c = 0    For i = 1 To Len(s)    temp = Mid$(s,i,1)    If Asc(temp) >= 33 And Asc(temp) <= 126 Then    '若是英文字符    e = e + 1    ElseIf Asc(temp) < 0 Then    '若是中文字符    c = c + 1    End If    Next i    Label1.Caption = “英文字数” & CStr(e)    Label2.Caption = “中文字数” & CStr(c)    End Sub