找回密码
 加入
搜索
查看: 2570|回复: 4

[效率算法] 请教如何查找指定文本里的哪些行含有两个指定的字符

  [复制链接]
发表于 2011-1-25 00:00:33 | 显示全部楼层 |阅读模式
比如我有个一个文件1.txt

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

我想输出含有两个或两个以有@符号的行到2.txt
发表于 2011-1-25 01:01:57 | 显示全部楼层
我想到两种方法,一种是先FileReadline,接着用StringSplit("string","\@")分割,如果分割得到三部分以上,则说明改行含有两个或两个以有@符号,然后写到2.txt中。
另外一种,还是先FileReadline,然后StringInStr ( "string", "@","","","","数量" ),把数量大于2的行写到2.txt中
发表于 2011-1-25 01:53:53 | 显示全部楼层
楼上的可行,另外可以把文档先读入,然后用@crlf 分割
利用数组,会块很多..
发表于 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[0]
        StringRegExpReplace($array[$i],'@')
        If @extended>1 Then FileWrite($hfile,$array[$i]&@crlf)
Next
fileclose($hfile)
发表于 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)
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-11-15 09:47 , Processed in 0.072284 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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