用VB统计中英文字符个数
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
用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。