admin 管理员组

文章数量: 887021


2024年1月26日发(作者:放到xml里)

用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()'初始化

= 1

= “”

End Sub

Private Sub Clearbtn_Click()

= “” '清空文本框

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 mat(vbCFText) Or mat(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 mat(vbCFText) Then

= a(vbCFText)

'当数据类型为文本时

End If

If mat(vbCFFiles) Then

'当数据类型为文件时

Dim vfn

For Each vfn In

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

rt = Len(text)

gth = 0

t = 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 =

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

n = “英文字数” & CStr(e

n = “中文字数” & CStr(c

End Sub


本文标签: 文本框 属性 统计 加入 字符