zz999 发表于 2011-1-25 00:00:33

请教如何查找指定文本里的哪些行含有两个指定的字符

比如我有个一个文件1.txt

里面可能有上千上W行的数据
每行数据都有符号 @
但有些行里有多个 @

我想输出含有两个或两个以有@符号的行到2.txt

papapa314 发表于 2011-1-25 01:01:57

我想到两种方法,一种是先FileReadline,接着用StringSplit("string","\@")分割,如果分割得到三部分以上,则说明改行含有两个或两个以有@符号,然后写到2.txt中。
另外一种,还是先FileReadline,然后StringInStr ( "string", "@","","","","数量" ),把数量大于2的行写到2.txt中

minterz 发表于 2011-1-25 01:53:53

楼上的可行,另外可以把文档先读入,然后用@crlf 分割
利用数组,会块很多..

3mile 发表于 2011-1-25 10:14:00

本帖最后由 3mile 于 2011-1-25 10:15 编辑

#include <array.au3>
#include <file.au3>

Local $array
_FileReadToArray("aaa.txt",$array)
$hfile=FileOpen("bbb.txt",1)
For $i=1 To $array
        StringRegExpReplace($array[$i],'@')
        If @extended>1 Then FileWrite($hfile,$array[$i]&@crlf)
Next
fileclose($hfile)

smartzbs 发表于 2011-1-25 11:22:25

本帖最后由 smartzbs 于 2011-1-25 11:24 编辑

#include <File.au3>
$sFile = "1.txt"
$sRead = FileRead($sFile, FileGetSize($sFile))
$aArray = StringRegExp($s, ".*@.*@.*", 3)
_FileWriteFromArray("2.txt", $aArray)
页: [1]
查看完整版本: 请教如何查找指定文本里的哪些行含有两个指定的字符