日常工作中在网上找到了一些文字材料,想要把文字拷贝下来,可是从网页上拷贝下来的文字在粘贴到文本编辑器上时,就会在段落与段落之间多出很多空行。若手动删除这些空行,既费时又费事。关于这个问题的几种解决方法网上也有介绍,都各有利弊,下面我就介绍另外的两种编写代码的解决方法,效率更高。
一、使用Word的宏
如果拷贝下来的文字里有连续的多行空行,或者在有些空行里还有数量不等的空格字符,不妨让Word的宏来一显身手。
创建一个宏,取名为DBL。代码及注释如下:
Sub DBL()
i = 1
Do
'从当前文档的顶端开始逐一选择文档的每一段文字
ActiveDocument.Paragraphs(i).Range.Select
If Trim(Selection.Text) = Chr(13) Then
'如果选择的段落里只有回车符和空格则删除此段
Selection.Delete
Else
'如果选择的段落非空,就将选择的指针移向下一段
Selection.MoveDown
i = i + 1
End If
Loop Until i = ActiveDocument.Parag
raphs.Count
End Sub
写好了宏程序之后,可以把刚才建好的宏拖拽到快捷工具栏上,做好以后,如果需要从网页上拷贝文字到Word上编辑时,只要单击一次这个宏按钮,即可瞬间删除整篇文档里的空行了。
二、使用网页脚本语言
如果电脑上用的文字处理工具是金山WPS系列的字处理软件,而没有安装Word和UltraEdit等软件时,不妨试试借助一下微软的网页脚本语言(VBScript)来处理删除空行的问题。现在绝大部分的机器上装的操作系统都是Windows,一般办公室里的机器都可以执行。
脚本程序要完成的任务不同于上面的Word宏。首先要把从网页上复制下来的文字粘贴到一个文本文件(以下简称A文件)里保存。脚本程序要做的事情是在程序执行时再创建一个文本文件(以下简称B文件),从A文件里逐行读取文字,并把非空行的文字内容写入到B文件里。这样,B文件里就没有空行了。
新建一个文本文件,把文件的扩展名改为.vbs。在记事本里打开该文件并输入脚本代码,代码及注释如下:
Const ForReading = 1, ForWriting = 2, TristateUseDefault = -2
Dim fsoA, fA, tA, fsoB, fB, tB, s, dir
'如果脚本程序和A文件在同一目录下,直接输入A文件的文件名和扩展名即可
dir=inputbox("请输入源文件的路径或相对路径:")
if dir<>"" then
'初始化A文件的对象
Set fsoA = CreateObject("Scripting.FileSystemObject")
Set fA = fsoA.GetFile(dir)
Set tA = fA.OpenAsTextStream(ForRe
ading, TristateUseDefault)
'创建并初始化B文件的对象
Set fsoB = CreateObject("Scripting.FileSystemObject")
fsoB.CreateTextFile("_"+dir)
Set fB = fsoB.GetFile("_"+dir)
Set tB = fB.OpenAsTextStream(ForWr
iting, TristateUseDefault)
'逐行读A文件并把非空行写入B文件
while not tA.AtEndOfStream
s=tA.ReadLine
if trim(s)<>"" then tB.WriteLine s
wend
'关闭文件对象
tB.Close
tA.Close
end if
脚本文件代码写好之后,保存,退出记事本。下面就可以用写好的脚本文件来删除空行了。用鼠标双击脚本文件即可执行程序。当程序执行完成之后就会自动产生一个在A文件名前加了一个下划线作为文件名的新文件,打开看看吧,里面的空行早被一扫而空。