wenquan79 发表于 2012-11-28 10:50:26

【已解決】請教--如何將文本中的空白行刪除。

本帖最后由 wenquan79 于 2012-11-29 11:42 编辑

如題,將文本中的空白行刪除-要怎么寫,謝謝!

------文本內容-----
00122    aa1,aa3,adf4,
adffd2    adf,1adf,1daf,

adf3    4c,5c,4s,sd3,sd1,

3dfc   4e,5f,4s,3g,s4,dg,

annybaby 发表于 2012-11-28 10:53:32

回复 1# wenquan79


    手机上网,看不到有空白行

wenquan79 发表于 2012-11-28 10:57:51

本帖最后由 wenquan79 于 2012-11-28 10:58 编辑

回复 2# annybaby
就是說一個文本里有空白的行,怎么才可以將那空白行刪除,其語言的教程很多,我用BAT的也可以實現,但用autoit不知道怎么寫。
可以先用FileReadLine返回的什來判斷這行是否為空,若是直接刪除?謝謝!

xiehuahere 发表于 2012-11-28 11:28:55

本帖最后由 xiehuahere 于 2012-11-28 11:45 编辑

回复 1# wenquan79

方法很多,下面是其中一种:
Global Const $srcFile = @ScriptDir & '\file.txt'
Global Const $desFile = @ScriptDir & '\output.txt'

Local $text = FileRead($srcFile)
$text = StringRegExpReplace($text, '[\r\n]{2,}', @CRLF)
FileWrite($desFile, $text)
注:之所以用[\r\n]而不用(\r\n),是为了兼容unix格式的文本(只有\n没有\r)。

其实,在linux下用sed处理最快捷,一行命令搞定:sed '/^$/d' file.txt >output.txt也可以网上找个 sed.exe 在Windows下来调用。

afan 发表于 2012-11-28 11:29:28

本帖最后由 afan 于 2012-11-28 14:30 编辑

简单的就简单Local $Str = _
                '00122    aa1,aa3,adf4,' & @CRLF & _
                'adffd2    adf,1adf,1daf,' & @CRLF & @CRLF & _
                'adf3    4c,5c,4s,sd3,sd1,' & @CRLF & _
                '' & @CRLF & _
                '3dfc   4e,5f,4s,3g,s4,dg,' & @CRLF & @CRLF & @CRLF
MsgBox(0, '原字符串', $Str)
Local $Test = StringRegExpReplace($str, '(\r?\n\h*){2,}', @CRLF)
MsgBox(0, '替换结果', $Test)

netegg 发表于 2012-11-28 14:31:04

这个问题afan好像去年还是前年就写出udf了,还要问,lz面壁去

lxwlxwayy 发表于 2012-11-28 18:21:03

字符格式,再{:face (394):}另存

wenquan79 发表于 2012-11-29 11:41:45

感謝xiehuahere兄、afan兄,經測試你們的代碼都可以。

wenquan79 发表于 2012-11-29 11:44:12

回复 7# netegg

可能是這繁體字的原因,我有先搜了,結果沒找到,以后會改簡體先搜索,謝謝了!

annybaby 发表于 2012-12-7 10:47:38

回复 10# wenquan79


    嗯,是的,你标题的“已解决”也是因为繁体原因,系统没有自动将帖子移动到“已解决问题区”,最好可以改一下
页: [1]
查看完整版本: 【已解決】請教--如何將文本中的空白行刪除。