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

[系统综合] 请教如何获取文档里面含有该数据的整行,再输出结果?

  [复制链接]
发表于 2010-4-21 19:20:50 | 显示全部楼层 |阅读模式
本帖最后由 stcyk 于 2010-4-22 01:08 编辑

list0     123234435346245    324234p23poi423p4    1111   534533545
list2     12322342345346245    2342323poi423p4    11234   534533545
list3     123234435346245    324234p23poi423p4    1111   534533545
list0     12322342345346245    2342323poi423p4    11234   534533545
list5     123234435346245    324234p23poi423p4    1111   534533545
list6     12322342345346245    2342323poi423p4    11234   534533545
list7     123234435346245    324234p23poi423p4    1111   534533545
list0     12322342345346245    2342323poi423p4    11234   534533545

上面是1.txt的数据格式

如果要获取里面含有list0的行并输出为2.txt,代码应该如何写,要用什么函数,谢谢
发表于 2010-4-21 21:15:51 | 显示全部楼层
Dim $file1 = "1.txt",$file2="2.txt",$line=""
$i=1
While 1
        $line=FileReadLine ($file1,$i)
        If @error==-1 Then ExitLoop
        $i+=1
        $sTr = StringRegExp ($line,"list0")
        If $sTr Then
                FileWriteLine ($file2,$line)
        EndIf
WEnd
发表于 2010-4-21 21:42:54 | 显示全部楼层
本帖最后由 水木子 于 2010-4-21 22:08 编辑

嘿嘿!我来个正则匹配的!
#include <Array.au3>
$sReg = StringRegExp(FileRead(@ScriptDir & '\1.txt'), 'list0.+', 3)
FileWrite(@ScriptDir & '\2.txt', _ArrayToString($sReg, @CRLF))
发表于 2010-4-21 22:08:09 | 显示全部楼层
嘿嘿!再来个正则替换的。
FileWrite(@ScriptDir & '\2.txt', StringRegExpReplace(FileRead(@ScriptDir & '\1.txt'), 'list[^0].+', ''))
 楼主| 发表于 2010-4-22 01:07:41 | 显示全部楼层
实在是佩服佩服,看来我要多多学习,谢谢以上几位,
对了,如果第一行是===============
最后一行是--------------------------
这样,然后要把第一行的数据和最后一行的数据复制进去对应在2.txt里面呢?是用什么函数呢?
 楼主| 发表于 2010-4-22 01:10:27 | 显示全部楼层
发现了个问题,如果list0在中间,这样前面的字符都被删除了,例如
123234435346245list03poi423p4    1111   534533545
得到结果
list03poi423p4    1111   534533545是
是否能整行都输出
 楼主| 发表于 2010-4-22 01:11:52 | 显示全部楼层
回复 2# C.L
谢谢你的代码,很简洁,很棒
发表于 2010-4-22 01:47:00 | 显示全部楼层
楼主,多问问afan和水木,这俩人最近都对正则很有研究
发表于 2010-4-22 09:09:35 | 显示全部楼层
本帖最后由 水木子 于 2010-4-22 09:14 编辑
发现了个问题,如果list0在中间,这样前面的字符都被删除了,例如
123234435346245list03poi423p4    1111 ...
stcyk 发表于 2010-4-22 01:10

表达式的问题,稍微修改下就可以了,怪我没考虑周到,不好意思啊!
FileWrite(@ScriptDir & '\2.txt', StringRegExpReplace(FileRead(@ScriptDir & '\1.txt'), '.*list[^0].+', ''))
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-5-20 19:15 , Processed in 0.079872 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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