Повторяющийся текст в файле.
Поползав по форуму нашел идентичную тему Creat0R'а, вот она:
читать дальше »
Хотелось бы решить такую задачу...
Имеется файл, а в нём много разного текста, и нужно перечитать весь текст, и проверить, не содержатся ли в нём дубликаты определённой переменной.
Т.е, допустим файл содержит такой текст:
[code]
Первая строчка
Вторая строчка
Просто текст
Ещё текст...
Просто текст
[\code]
И заранее известно, что именно нужно искать, и это помещенно в переменную - $Var = "Просто текст"...
Нужно в этом файле вычеслить, повторяется ли этот самый текст (тот который в переменной), если есть совпадения, то желательно вернуть номер строчки где есть совпадение, и строку содержащюю найденый дубликат (в Array[1].. [2] и т.п).
Решение предложенное amel27
PHP код:
#include <File.au3>
$File = "c:\test.txt"
$Array = _TextInFile ($File, "Просто текст")
If $Array[0][0]>1 Then
For $i = $Array[0][0] to 2 Step -1
_FileWriteToLine($File, $Array[$i][0], "", 1)
Next
EndIf
Func _TextInFile ($file, $text)
Local $i, $txtLines, $res [1][2] = [[0,0]]
_FileReadToArray ($file, $txtLines)
If IsArray ($txtLines) Then
For $i=1 To $txtLines [0]
If StringInStr ($txtLines [$i], $text) Then
ReDim $res [$res [0][0]+2][2]
$res [0][0] = $res [0][0] +1
$res [$res [0][0]][0] = $i
$res [$res [0][0]][1] = $txtLines [$i]
EndIf
Next
EndIf
Return $res
EndFunc
У меня вот идентичная проблема, есть файл в котором:
Код:
1
1
233759
38782524?95793
16910026
1785220?83255
233759
38782524?95793
16910026
233759
38782524?95793
16910026
1785220?83255
Как я хотел, прочитать файл в массив и подставлять каждый элемент массива вместо (Просто текст). Сделал такое, в файл записывает только первый совпавший элемент =(
В итоге надо получить воттакое вот:
Код:
1
233759
38782524?95793
16910026
1785220?83255
Спасибо.
|