仍是处理电子书的老问题,这次我欲将每个段落(如果是行,是否更麻烦?)的未尾可见字符取出,放入一个文件,并将除标点符号以外的字符删除(以观察行尾标点的特征,为日后提供智能分段程序作准备)。
前期工作已可作到,见下列程序(其实还是版主上次提供的取得各段字数的那个程序的框架),但这次速度又慢了,一个200多k仅3670行的(而一般电子书多达兆级)文件处理一下得三分钟以上,是否太慢了些,版主,能再快一些么?
至于将非标点字符删除的工作,目前我还没有解决方案,E文标点还可用ASC码区域来限制一下,可中标点的ASC值有无一个范围?版主,有高招么?
Option Explicit
Sub try()
Dim FSO As Object, MyTxt As Object, MyFilePathName As String
Dim i As Paragraph, Lenth As Long, ParCount As Long, xx1 As Long
Debug.Print Now
MyFilePathName = "D:\test\Ttt.txt" '定义一个文件名与路径变量
If Dir(MyFilePathName) <> "" Then Kill MyFilePathName '如果存在该文件则删除
Set FSO = CreateObject("Scripting.FileSystemObject") '定义一个FSO对象
Set MyTxt = FSO.CreateTextFile(MyFilePathName, True) '创建一个TXT文件
For Each i In ActiveDocument.Paragraphs '在活动文档的段落中循环
ParCount = ParCount + 1 '计数
xx1 = i.Range.End - i.Range.Start - 1
If xx1 > 2 Then _
Set myrange = ActiveDocument.Range(ActiveDocument.Paragraphs(ParCount). _
Range.End - 3, ActiveDocument.Paragraphs(ParCount).Range.End - 2) _
Else _
Set myrange = ActiveDocument.Range(ActiveDocument.Paragraphs(ParCount). _
Range.End - 2, ActiveDocument.Paragraphs(ParCount).Range.End - 2) _
MyTxt.Write myrange
Next i
MyTxt.Close '关闭
Debug.Print Now
End Sub
PuZYa8DR.rar
(116.94 KB, 下载次数: 20)
|