Показать полную графическую версию : Поиск строки текста в группе файлов
Serg2010
12-05-2013, 19:00
Добрый день!
Подскажите, плиз:
Нашел на форуме пример поиска текста в 1 файле (я молодец?):
#include <Array.au3>
Local $sFilePath = @ScriptDir & '\test.txt'
Local $sFileText = @CRLF & FileRead($sFilePath) & @CRLF
Local $aPattern = String('/var></a>(.*?)<br /></td>'</span>)
Local $aResult = StringRegExp($sFileText, $aPattern, 3)
For $i = 0 To UBound($aResult)-1
$aResult[$i] ;$i тут это номер элемента в массиве, чтобы его прочитать, мы просто задаём его как $aResult[$i]
ConsoleWrite($aResult[$i] & @LF)
Next
Помогите произвести поиск в нескольких файлах (может и 100). Программа будет анализировать логи взятые со всех компьютеров.
Если в какой либо текстовом файле найдена искомая строка, то название этого файла будет выведено в мой лог штрафников для разбора полётов ...
Спасибо
Куски кода следует помещать в соответствующий тег ([code]).
Нужно искать эти файлы, или их нужно жёстко указать в скрипте?
Serg2010
14-05-2013, 21:07
Нет, искать ничего не надо. Будет некая папка, туда посредством другого скрипта копирую все текстовые файлы (логи) ... Т.е. просмотр нужно делать всех файлов в одной папке, ну может маску если задать. А программа пусть предлагает выбрать каталог для просмотра ... или в ини можно задать ... Да это я и сам в принципе прикручу. Сейчас главной как обойти все файлы и в каждом поискать ... Цикл ... Если файлы текстовые разные то может тогда по маске их отобрать для поиска... Другие не трогать ... Маску можно задать в коде ... я Потом чтот придумаю.
Может я вопрос не понял, но если и надо искать файлы то в пределах одной папки, куда я позабочусь чтоб попали все логи где бы они не находились ... Проблема в том, что программа-сервер которая делает логи по каждому компу а там доступы к устройствам не обрабатывает все логи сама ... а ходить в каждый лог и анализировать извините ...
Serg2010
Что по поводу тегов, код до сих пор не в них.
просмотр нужно делать всех файлов в одной папке »
#include (http://autoit-script.ru/autoit3_docs/keywords.htm##include) <File.au3>
$sLogs_Dir = @ScriptDir (http://autoit-script.ru/autoit3_docs/macros.htm#@scriptdir) ;Папка содержащая файлы
$sFiles_Mask = '*.txt'
$sPattern = '/var></a>(.*?)<br /></td>'
$aFiles = _FileListToArray (http://autoit-script.ru/autoit3_docs/libfunctions/_filelisttoarray.htm)($sLogs_Dir, $sFiles_Mask, 1)
For (http://www.autoitscript.com/autoit3/docs/keywords.htm#For) $i = 1 To (http://www.autoitscript.com/autoit3/docs/keywords.htm#To) UBound (http://autoit-script.ru/autoit3_docs/functions/UBound.htm)($aFiles) - 1
$sFilePath = $sLogs_Dir & '\' & $aFiles[$i]
$sFileText = @CRLF (http://autoit-script.ru/autoit3_docs/macros.htm#@crlf) & FileRead (http://autoit-script.ru/autoit3_docs/functions/FileRead.htm)($sFilePath) & @CRLF (http://autoit-script.ru/autoit3_docs/macros.htm#@crlf)
$aResult = StringRegExp (http://autoit-script.ru/autoit3_docs/functions/StringRegExp.htm)($sFileText, $sPattern, 3)
For (http://www.autoitscript.com/autoit3/docs/keywords.htm#For) $j = 0 To (http://www.autoitscript.com/autoit3/docs/keywords.htm#To) UBound (http://autoit-script.ru/autoit3_docs/functions/UBound.htm)($aResult) - 1
ConsoleWrite (http://autoit-script.ru/autoit3_docs/functions/ConsoleWrite.htm)($aResult[$j] & @LF (http://autoit-script.ru/autoit3_docs/macros.htm#@lf))
Next (http://www.autoitscript.com/autoit3/docs/keywords.htm#Next)
Next (http://www.autoitscript.com/autoit3/docs/keywords.htm#Next)
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.