如何从文本文件中删除所有空白行?
2个回答
2018-06-28 · 为您提供更好的产品和服务
七彩虹科技有限公司
七彩虹科技成立于1995年,中国著名的DIY硬件厂商, 亚太区最重要的显示卡提供商之一。专注于IT硬件产品研发、生产和销售,致力于为个人和企业用户提供最具创新与实用价值的硬件产品及应用方案。
向TA提问
关注
展开全部
在Word主菜单“开始”菜单--“编辑”菜单--点击“查找和替换”后弹出对话框
在弹出的对话框中,查找内容处 输入“ ^p^p ”,替换为处输入“ ^p ”,
然后选“全部替换”,弹出小对话框点击确定后,关闭
这种方法可删掉文档中因自动换行符造成的多余空行,但还有一些空行是删不掉的,需要再用下面的其他方法
对于文档中的手动换行符(“Shift+回车”),就要用“ ^l^l ”替换成“ ^l ”(这里用的不是1,而是L字母的小写)或直接用替换对话框里的“特殊字符”,选择里面的“有手动换行符”来进行替换,也可以去掉文档中的一些多余空行。
对于自动和手动换行符交替的情况,可用“ ^p ^l ”替换成“ ^l ”或“ ^l ^p”替换成“ ^l ”也可以去掉文档中的一些多余空行。
8
上述三种方法可以去除文档中的大部分空行,如果还剩有空行,可以再用下面方法试一试
用“^l ^l”(两个换行符之间有一个空格)替换成“^l”,这种方法是用来对付前面有空格的换行符。
在弹出的对话框中,查找内容处 输入“ ^p^p ”,替换为处输入“ ^p ”,
然后选“全部替换”,弹出小对话框点击确定后,关闭
这种方法可删掉文档中因自动换行符造成的多余空行,但还有一些空行是删不掉的,需要再用下面的其他方法
对于文档中的手动换行符(“Shift+回车”),就要用“ ^l^l ”替换成“ ^l ”(这里用的不是1,而是L字母的小写)或直接用替换对话框里的“特殊字符”,选择里面的“有手动换行符”来进行替换,也可以去掉文档中的一些多余空行。
对于自动和手动换行符交替的情况,可用“ ^p ^l ”替换成“ ^l ”或“ ^l ^p”替换成“ ^l ”也可以去掉文档中的一些多余空行。
8
上述三种方法可以去除文档中的大部分空行,如果还剩有空行,可以再用下面方法试一试
用“^l ^l”(两个换行符之间有一个空格)替换成“^l”,这种方法是用来对付前面有空格的换行符。
展开全部
您好,RE。您知道,早在 2002 年,当时的脚本专家们还只是一些默默无闻之辈时,我们就开始编写 Microsoft Windows 2000 Scripting Guide(英文)了。在整理该书时,我们遇到了来自某些人的巨大阻力,这些人认为即使是提到文本文件也是一个错误。为什么会是这样?因为没有人还在使用文本文件,我们在一项过时的技术上浪费时间是有点傻。注意:无论您是否相信,即便该书旨在向人们讲授如何使用 VBScript 编写脚本,可是在将 VBScript 一章加入该书时我们还是遇到了相当大的阻力。但这是另外一回事。所有这一切说明了什么?现在是 2006 年,您好,脚本专家!专栏所要解决的第一个问题就需要用文本文件进行处理。这对于没人使用的过时技术来说还不算坏吧?假定您有一个类似如下的文本文件:Line 1 Line 2 Line 3 而您希望该文本文件看起来是这样:Line 1 Line 2 Line 3 使用脚本能够做到这一点吗?当然可以:Const ForReading = 1 Const ForWriting = 2 Set objFSO = CreateObject("Scripting.FileSystemObject") Set objFile = objFSO.OpenTextFile("C:\Scripts\Test.txt", ForReading) Do Until objFile.AtEndOfStream strLine = objFile.Readline strLine = Trim(strLine) If Len(strLine) > 0 Then strNewContents = strNewContents & strLine & vbCrLf End If Loop objFile.Close Set objFile = objFSO.OpenTextFile("C:\Scripts\Test.txt", ForWriting) objFile.Write strNewContents objFile.Close 在了解脚本工作原理的细枝末节之前,让我们先讲一下基本思想。您可能知道,处理文本文件常常包括如何提出解决方法。今天的脚本也不例外。因为我们不能直接编辑文本文件,所以只能这样:首先,逐行读入文本文件。在读每一行时,检查该行是否为空白行。如果是,将其删除;如果不是,将该行(连同任何其他非空白行)添加到一个名为 strNewContents 的变量中。读完该文件后,将文件关闭,然后立即将其重新打开以进行写入。(使用文本文件的一个与众不同之处是:可以读取文件也可以写入文件,但不能同时读取和写入一个文件。)然后将 strNewContents 的值写入该文件。最终结果为:我们得到了一个没有空白行的文件。您都清楚了吗?好的。现在让我们逐步遍历该脚本。首先定义一对名为 ForReading 和 ForWriting 的常量,我们将用这两个常量来指定打开文本文件时的相应模式。然后使用以下两行代码创建一个 Scripting.FileSystemObject 实例,并打开 C:\Scripts\Test.txt 文件以进行读取:Set objFSO = CreateObject("Scripting.FileSystemObject") Set objFile = objFSO.OpenTextFile("C:\Scripts\Test.txt", ForReading) 接下来我们看下面的代码块:Do Until objFile.AtEndOfStream strLine = objFile.Readline strLine = Trim(strLine) If Len(strLine) > 0 Then strNewContents = strNewContents & strLine & vbCrLf End If Loop 此处我们所做的是逐行(从开头到末尾)读取该文件,好了,到末尾了。(如何知道已经到达文件末尾?答案是当 AtEndOfStream 属性为 True 时。) 在此循环内部,我们使用 ReadLine 方法来读取文本文件的第一行并将其存储在一个名为 strLine 的变量中。然后使用下行代码和 Trim 函数将该行行首和/或行尾的空格删除:strLine = Trim(strLine) 为什么这样做?好吧,假定文件中有许多行是由单个空格构成的。再假定您将它们计为空白行并想将其删除。如果不想删除这些行,则只需将该行代码从脚本中删除:strLine = Trim(strLine) 接下来是下面的代码:If Len(strLine) > 0 Then 现在我们所做的是用 Len 函数确定行中的字符数。如果 Len 大于 0,则该行不是空白行;因此,我们将该行(再加上一个回车换行符)添加到名为 strNewContents 的变量中:strNewContents = strNewContents & strLine & vbCrLf 是的,无论变量 strNewContents 中当前含有什么内容,我们都会将该行添加到其中。这就是我们将 strNewContents 的当前值与变量strLine 及回车换行符(使用 VBScript 常量 vbCrLf)连接在一起的原因。但如果 Len 不大于0 将怎样?如果出现这种情况,则表明该行为空白行,因此我们不会将该行添加到 strNewContents 中。然后进入下一轮循环,对文本文件中的下一行重复此过程。关闭文件 C:\Scripts\Test.txt 后,再将其重新打开(这次进行写入)并调用 Write 方法将 strNewContents 的值写入该文件。为什么会是这样?很简单:因为除空白行外,strNewContents 包括原文本文件中的所有行;我们决不会将空白行添加到 strNewContents 中。那么,我们得到了什么?猜对了:Line 1 Line 2 Line 3 虽然有点麻烦,但正如我们所说,这对于“过时”技术来说还不算坏。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |