标题: [文本处理] 【已解决】BAT或VBS如何去除文本结尾的空行? [打印本页]
作者: 思想之翼 时间: 2013-5-20 00:32 标题: 【已解决】BAT或VBS如何去除文本结尾的空行?
去除文本结尾的空行
a.txt用VBS按列分解后,每个文本数据结尾(最底)有一空行,导入excel运行宏代码时会报错,如何修改这VBS代码,就可以去除最底的空行?抑或再写一批处理去除空行?
作者: xxpinqz 时间: 2013-5-20 10:37
http://www.bathome.net/thread-24430-1-1.html
是这里头的问题吧?
vbs不懂,第三方也不懂,
没见过猪,但也吃过猪肉,看多了还是知道vbCrLf代表换行回车。
所以应该就是str = str & vbCrLf这里没判断才会空行。加个是否最后一行的判断就可以
或者判断是否第一行;不懂写VBS代码,套用批处理的思路,下面REM的两句~~- Sub getColumn(ar,filename)
- Set file = FSO.OpenTextFile("a.txt",1)
- rem set line1=true
- Do While file.AtEndOfStream <> True
- n = Split(file.ReadLine)
- rem if line1 = true then set line1=false else str = str & vbCrLf
- str = str & n(0)
- For Each a In ar
- str = str & " " & n(a)
- Next
- Loop
- file.Close
- Set file = FSO.CreateTextFile(filename,True)
- file.Write str
- file.Close
- End Sub
复制代码
作者: 我来了 时间: 2013-5-20 12:06
不就行末 多了几个空格么?
用textpro点1下菜单就搞定了。
作者: terse 时间: 2013-5-20 13:24
简单的修改 就是输出时 截取到字符到倒数第一个 Write left(str,len(str)-1)
作者: 思想之翼 时间: 2013-5-20 18:37
谢谢各位的热心帮助!完美解决问题。
作者: terse 时间: 2013-5-20 20:22
楼主共享一下解决方法 也方便他人
笨办法 外部 GAWK 解决- gawk "func p(){for(i=2;i<=NF;i++)print $1,$i>>i-1\".txt\"}func f(){for(i=2;i<=NF;i++)printf $1\" \"$i>i-1\".txt\"}{if(getline s){p();$0=s;p()}else f()}" a.txt
- pause
复制代码
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |