xndo 发表于 2011-5-14 09:15:19

可不可以获取 字符 在文本里的行数

我想获取 字符在文本里的行数位置, 然后获得整行数据。

文本比较大 如果一行一行判断 速度太慢了。 。。

谢谢

netegg 发表于 2011-5-14 09:35:16

本帖最后由 netegg 于 2011-5-14 09:44 编辑

有多大,如果不是太大的话
#include<file.au3>
#include<array.au3>
local $aA, $wholeline
_filereadtoarray($file, $aA)
local $aInclude = _arrayfindall($aA, $text, 0,0,0,1)
;_arraaydisplay($include, ' ')
for $i = 1 to $aInclude
$wholeline &= & @cr &$aA[$aInclude[$i]]
next
msgbox(0,0, $wholeline)

xndo 发表于 2011-5-14 09:40:08

谢谢 刚才群里一位朋友 提示判断回车数量的

xndo 发表于 2011-5-14 09:40:47

版主锁吧   解决了~!

xndo 发表于 2011-5-14 09:41:08

谢谢 netegg

xndo 发表于 2011-5-14 09:42:30

文本8M20W行

netegg 发表于 2011-5-14 09:44:51

回复 6# xndo
那最好用正则

水木子 发表于 2011-5-14 10:01:20

本帖最后由 水木子 于 2011-5-14 10:12 编辑

111111111111111
222222222222222
333333333333333
444444444444444
555555555555555
666666666666666
777777777777777
888888888888888
测试文本9999999
100000000000000
110000000000000
120000000000000

测试文本:
不过 文本8M20W行 如此庞大的文本中,应该有重复的文本内容,这个还需要进一步处理。

$sText = FileRead('Text.txt')
$sTest = '测试文本' ;需要搜索的文本
$aRe1 = StringRegExp($sText, '(?s).*' & $sTest, 3)
If IsArray($aRe1) Then
        $aRe2 = StringRegExp($aRe1, @CRLF, 3)
        MsgBox(0, '', '搜索的文本在地 ' & UBound($aRe2) + 1 & ' 行')
EndIf
页: [1]
查看完整版本: 可不可以获取 字符 在文本里的行数