找回密码
 加入
搜索
查看: 3161|回复: 8

处理txt文本时 发现 多行空行 如何删掉?

[复制链接]
发表于 2009-8-18 10:49:14 | 显示全部楼层 |阅读模式
处理txt文本时 发现 多行空行 如何删掉?

比如

aaaa


bbbb


cccc


修正成

aaaa
bbbb
cccc
发表于 2009-8-18 11:36:41 | 显示全部楼层
本帖最后由 afan 于 2010-1-2 21:39 编辑

用 FileReadLine 及 _FileWriteToLine 可以

或使用 StringRegExpReplace 或 StringReplace 处理更快速~

已写成相关udf,发布处理多种情况,改日发布。
发表于 2009-8-18 13:42:28 | 显示全部楼层
我用一个笨办法再建一个空文件test1.txt
$file = FileOpen("test1.txt", 1)
Dim $aArray2
_FileReadToArray('test.txt', $aArray2)
for $x=1 to $aArray2[0]
  if $aArray2[$x] <> "" then
      FileWriteLine($file,$aArray2[$x] )
  endif
next
发表于 2009-8-18 14:16:48 | 显示全部楼层
不需要新建文件,可以直接处理
#include <File.au3>
Dim $aArray2, $b
_FileReadToArray('test1.txt', $aArray2)
For $x = 1 To $aArray2[0]
        If $aArray2[$x] = "" Then
                _FileWriteToLine('test1.txt', $x - $b, '', 1)
                $b += 1
        EndIf
Next
发表于 2009-8-18 14:27:38 | 显示全部楼层
可以用sed.exe
sed.exe -e "/^ *$/d" 删除所有的空行。
发表于 2009-8-19 17:04:34 | 显示全部楼层
不需要新建文件,可以直接处理#include
Dim $aArray2, $b
_FileReadToArray('test1.txt', $aArray2)
For $x = 1 To $aArray2[0]
        If $aArray2[$x] = "" Then
                _FileWriteToLine('test1.txt', $x - $b, '', 1) ...
afan 发表于 2009-8-18 14:16


$b不用付初值?
发表于 2009-8-19 17:11:15 | 显示全部楼层
6# crazy715


此种用途可以不设~
发表于 2010-5-12 03:58:41 | 显示全部楼层
2楼正解,其实方法还是比较简单的,但本人最近在处理几十亿条数据时,却发现TXT的读取速度太慢,请高手支招!
发表于 2010-5-12 09:38:03 | 显示全部楼层
2楼正解,其实方法还是比较简单的,但本人最近在处理几十亿条数据时,却发现TXT的读取速度太慢,请高手支招!
jevonleen 发表于 2010-5-12 03:58



    老帖被你翻出来了
http://www.autoitx.com/thread-11801-1-1.html
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-9-22 06:42 , Processed in 0.079513 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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