第4个回答 2009-07-03
汉字个数可以通过正则得到,问题是你要字还是词,词就不好弄了...
英文字频:
'引用 Microsoft Scripting Runtime
Dim sFile As String
Dim lngFile As Long
Dim dic As Dictionary
Dim tmp
Dim i As Long
lngFile = FreeFile
Open App.Path & "\myFile.txt" For Binary As lngFile
sFile = Space(LOF(lngFile))
Get lngFile, , sFile
Close
'替换标点符号 (简单示例其它视情况整理)
sFile = Replace(sFile, ".", Space(1))
sFile = Replace(sFile, ",", Space(1))
sFile = Replace(sFile, "?", Space(1))
sFile = Replace(sFile, vbCrLf, Space(1))
'按空格读取单词(用instr搜索快一点,这儿示例用split相对简单一点)
tmp = Split(sFile, Space(1))
Set dic = New Dictionary
For i = 1 To UBound(tmp)
tmp(i) = Trim(tmp(i))
If Len(tmp(i)) Then
If dic.Exists(tmp(i)) Then
dic.Item(tmp(i)) = dic.Item(tmp(i)) + 1
Else
dic.Add tmp(i), 1
End If
End If
Next
'输出结果
For i = 0 To dic.Count - 1
Debug.Print dic.Keys(i) & " - " & dic.Items(i)
Next
Set dic = Nothing
中文字频和这个一样,一个个加字典统计即可本回答被提问者采纳