51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 6623|回复: 20
打印 上一主题 下一主题

[讨论] 删除文本中的最后一行空行

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2009-7-25 16:37:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
下面这段脚本可以解决文本中的空行,我现在遇到在行尾多出来一个空行,比如说文本在"3"这个地方就结束了,可是,光标又挪到下一行了,就停在下一行的行首

srcFile   =   "c:\delLine1.htm"     '需要替换的文本文件   
  desFile   =   "c:\delLine2.htm"     '替换后的文本文件   
  pattern   =   "\n[\s|   ]*\r"             '匹配空行的正则表达式,   包括含有\v\t\f等   
   
  s   =   ReadFile(srcFile)   
  Set   regEx   =   New   RegExp      
  regEx.Pattern   =   pattern   
  regEx.IgnoreCase   =   True     
  regEx.Global   =   True     
         
  s1   =   regEx.replace(s,"")   
  wscript.echo   s1   
   
  call   writeToFile(desFile,s1)   
   
   
  Sub   WriteToFile(strFile,str)   
        Dim   fso,   f   
        Set   fso   =   CreateObject("Scripting.FileSystemObject")   
        Set   f   =   fso.OpenTextFile(strfile,   2,   True)   
        f.Write   str   
        set   f=   nothing   
        set   fso=nothing   
  End   Sub   
   
  Function   ReadFile(strFile)   
        Dim   fso,   f   
        Dim   readFile1   
        Set   fso   =   CreateObject("Scripting.FileSystemObject")   
        Set   f   =   fso.OpenTextFile(strFile,1)   
        ReadFile1   =       f.ReadAll   
        set   f=nothing   
        Set   fso=nothing   
  ReadFile=ReadFile1   
  End   Function
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
 楼主| 发表于 2009-7-25 17:07:34 | 只看该作者
今天的人气低到脚踝啦,
回复 支持 反对

使用道具 举报

该用户从未签到

3#
 楼主| 发表于 2009-7-28 09:08:52 | 只看该作者
顶一顶,大家看看啊
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2009-7-28 09:41:55 | 只看该作者
writeline的时候就会自动换行了。思路不错,正则的作用挺大的!
回复 支持 反对

使用道具 举报

该用户从未签到

5#
 楼主| 发表于 2009-7-28 09:48:50 | 只看该作者
文本中最后一行我也不想要,光标就要停在文本结束的地方 比如说 文本最后一个字符是"3"的话,那么 最后就应该是
"3EOF"
而不是
"3"
EOF
回复 支持 反对

使用道具 举报

该用户从未签到

6#
发表于 2009-7-28 10:18:57 | 只看该作者

try this

  1. pattern = "\n\s*\r|\n\s*$"
复制代码

[ 本帖最后由 intothestorm 于 2009-7-28 11:21 编辑 ]
回复 支持 反对

使用道具 举报

该用户从未签到

7#
 楼主| 发表于 2009-7-28 10:52:45 | 只看该作者
喂,凶猫,这不会是巴豆吧,  开玩笑,我试试
回复 支持 反对

使用道具 举报

该用户从未签到

8#
发表于 2009-7-28 11:22:33 | 只看该作者
你想吃我无限量供应
别试了,之前没环境调试,code有问题,漏了最后一行有空格的可能。
更新了。
回复 支持 反对

使用道具 举报

该用户从未签到

9#
 楼主| 发表于 2009-7-28 13:56:26 | 只看该作者

回复 8# 的帖子

真的更新啦?
可是我在文本最后一行加了几个回车后,打印出来的文本EOF 还是在另一行,并没有跟在文本后面啊
回复 支持 反对

使用道具 举报

该用户从未签到

10#
发表于 2009-7-28 14:30:30 | 只看该作者
输入文件我用的txt,更新后的pattern在我自己机器上试过了,完全满足你的需求啊。
你自己再琢磨琢磨,实在不行把你的源文件传上来,我亲自帮你调。
回复 支持 反对

使用道具 举报

该用户从未签到

11#
 楼主| 发表于 2009-7-28 15:30:30 | 只看该作者
你在END 后面添加几个回车,然后保存成文本文件,处理后再另存的文件 光标是停留在"d"后面的吗

#1 aoeu
#2 aoeu
#3 eontuhoetnu
#End

[ 本帖最后由 lijinshui 于 2009-7-28 15:33 编辑 ]
回复 支持 反对

使用道具 举报

该用户从未签到

12#
发表于 2009-7-28 15:47:31 | 只看该作者
fox后面那根竖线就是EOF

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

x
回复 支持 反对

使用道具 举报

该用户从未签到

13#
 楼主| 发表于 2009-7-28 17:05:10 | 只看该作者

回复 12# 的帖子

你在"FOX"后面加了几个回车后,不要打印,请用WriteToFile(strFile,str)  ,这样估计就跟你想的不一样喽,刚才,我也用打印的跟你的一样,可是写到文件里面后,光标还是被发配到下一行了
回复 支持 反对

使用道具 举报

该用户从未签到

14#
发表于 2009-7-30 10:54:46 | 只看该作者
不管打印还是写文件结果都一样,我就改了你的pattern,其他什么都没改。
难道你不是用的windows系统?

有没有其他的小白鼠做做实验?
回复 支持 反对

使用道具 举报

该用户从未签到

15#
 楼主| 发表于 2009-8-20 08:38:50 | 只看该作者
我贴图了


执行后结果


希望得到的结果


[ 本帖最后由 lijinshui 于 2009-8-20 15:04 编辑 ]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

x
回复 支持 反对

使用道具 举报

该用户从未签到

16#
 楼主| 发表于 2009-8-20 08:46:45 | 只看该作者
图片在压缩文件里面


[ 本帖最后由 lijinshui 于 2009-8-20 08:49 编辑 ]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

x
回复 支持 反对

使用道具 举报

该用户从未签到

17#
发表于 2009-8-20 10:58:16 | 只看该作者
你这个是什么文本编辑器。
从图里看,最后一行只回车了没换行,应该达到你的目的了啊。
那个EOF是不是你编辑器显示的问题,即总是显示在下一行。
你有其他文本文件能显示成“3EOF"这种?
回复 支持 反对

使用道具 举报

该用户从未签到

18#
 楼主| 发表于 2009-8-20 11:11:12 | 只看该作者
是一个开源的文本编辑器,可以显示一些特殊符号,我又重新添加了一个图片,3.BMP就是我想要的结果,2.BMP是实际执行的结果,



[ 本帖最后由 lijinshui 于 2009-8-20 11:13 编辑 ]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

x
回复 支持 反对

使用道具 举报

该用户从未签到

19#
 楼主| 发表于 2009-8-20 11:15:02 | 只看该作者
原帖由 intothestorm 于 2009-8-20 10:58 发表
你这个是什么文本编辑器。
从图里看,最后一行只回车了没换行,应该达到你的目的了啊。
那个EOF是不是你编辑器显示的问题,即总是显示在下一行。
你有其他文本文件能显示成“3EOF"这种?


你说"最后一行只回车了没换行" ,但是在统计行数的时候的确是多了一行的
回复 支持 反对

使用道具 举报

该用户从未签到

20#
 楼主| 发表于 2009-8-20 14:14:57 | 只看该作者

可以了

Call Replace_str()
  Sub   WriteToFile(strFile,str)   
        Dim   fso,   f   
        Set   fso   =   CreateObject("Scripting.FileSystemObject")   
        Set   f   =   fso.OpenTextFile(strfile,   2,   True)   
        f.Write   str   
        set   f=   nothing   
        set   fso=nothing   
  End   Sub   
   
  Function   ReadFile(strFile)   
        Dim   fso,   f   
        Dim   readFile1   
        Set   fso   =   CreateObject("Scripting.FileSystemObject")   
        Set   f   =   fso.OpenTextFile(strFile,1)   
        ReadFile1   =       f.ReadAll   
        set   f=nothing   
        Set   fso=nothing   
  ReadFile=ReadFile1   
  End   Function


Function Replace_str()
'   pattern = "\n\s*\r|\n\s*$"
   pattern = "\n\s*\r|\r\n\s*$"
   Dim FilePath,totalFileName
   Dim content
   FilePath = InputBox("Enter File Path Please!")
    FilePath = FilePath & "\"
   content = InputBox ("Enter Content File Name")

   totalFileName= FilePath & content
Set fso = CreateObject("Scripting.FileSystemObject")

Set MyFilebak=fso.OpenTextFile(totalFileName, 1, false)
Do While MyFilebak.AtEndOfStream <> True
      retstring = MyFilebak.ReadLine
          If retstring <> "" Then
                          TmpPath =  FilePath & retstring
                            s   =   ReadFile(TmpPath)
                                  Set   regEx   =   New   RegExp      
                                        regEx.Pattern   =   pattern   
                                          regEx.IgnoreCase   =   True     
                                          regEx.Global   =   True     
                                          s1   =   regEx.replace(s,"")  
                                          call   writeToFile(TmpPath,s1)   
          End If

   Loop
   MyFilebak.close
End Function
回复 支持 反对

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-11-16 08:36 , Processed in 0.081188 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表