Показать полную графическую версию : Автоматизировать большое количество однотипных действий в текстовом файле
mityamitya
18-04-2010, 09:46
Доброго времени суток.
Такая вот проблема. Я с помощью программы Internet Content Logger сохранил в текстовый лог файл все, что мой интернет браузер пропускал через себя. А теперь полученный результат надо обработать. Тобишь мне надо поочередно найти все участоки текста, которые начинаются со слова <form action= и заканчивается словом </form> и все их скопировать в другой текстовый файл. Можно было бы в ручную, но это надо сделать 2000 раз !!!
У меня самого никаких идей как это реализовать.
Регулярные выражения, копай в их сторону
madmasles
18-04-2010, 10:47
mityamitya,
Если только одно вхождение в каждой строке, то попробуйте так:#include <file.au3>
#include <Array.au3>
Dim (http://www.autoitscript.com/autoit3/docs/keywords.htm#Dim) $aRecords
Dim (http://www.autoitscript.com/autoit3/docs/keywords.htm#Dim) $aRecordsNew[1]
_FileReadToArray("1.txt", $aRecords)
$pattern = '(?s).*?<form action=(.*?)</form>?.*'
For (http://www.autoitscript.com/autoit3/docs/keywords.htm#For) $i = 1 To (http://www.autoitscript.com/autoit3/docs/keywords.htm#To) UBound (http://www.autoitscript.com/autoit3/docs/functions/UBound.htm)($aRecords) - 1
If (http://www.autoitscript.com/autoit3/docs/keywords.htm#If) StringInStr (http://www.autoitscript.com/autoit3/docs/functions/StringInStr.htm)($aRecords[$i], "<form action=") <> 0 And (http://www.autoitscript.com/autoit3/docs/keywords.htm#And) StringInStr (http://www.autoitscript.com/autoit3/docs/functions/StringInStr.htm)($aRecords[$i], "</form>") <> 0 Then (http://www.autoitscript.com/autoit3/docs/keywords.htm#Then)
$sFiltr = StringRegExpReplace (http://www.autoitscript.com/autoit3/docs/functions/StringRegExpReplace.htm)($aRecords[$i], $pattern, "\1")
_ArrayAdd($aRecordsNew, $sFiltr)
$aRecordsNew[0] += 1
EndIf (http://www.autoitscript.com/autoit3/docs/keywords.htm#EndIf)
Next (http://www.autoitscript.com/autoit3/docs/keywords.htm#Next)
_ArrayDisplay($aRecordsNew)
_FileWriteFromArray("2.txt", $aRecordsNew, 1)
mityamitya
18-04-2010, 17:44
Спасибо большое за ответы. Но я малость ошыбся. Не в ту ветку форума задал вопрос. Смотрю " Автоматизация действий " думаю: мне сюда. А что такое AutoIt даже не знал. А теперь разобрался. Ну что ж, прошу прощения.
Я вопрос задам в теме "Скриптовые языки администрирования Windows". Хотя если будет время, я поставлю AutoIt и посмотрю как оно работает. А вообще я определился с тем, чте мне эту функцию надо реализовать с помощью VBScript.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.
Available in ZeroNet 1osznRoVratMCN3bFoFpR2pSV5c9z6sTC