Здравствуйте.
Помогите изменить скрипт.
Имеется код autoit, который извлекает определенные слова из текстового файла 1.txt и складирует этот извлеченный текст - в файл Текст.txt.
Проблема в том, что поскольку подобных "поисковых слов" много - то приходится под каждое слово использовать свой отдельный скрипт.
А потом объединять эти скрипты - в одном общем скрипте:
Получается, что чем больше "поисковых слов" - тем больше нужно создавать однотипных скриптов и прописывать их в общем скрипте. Это очень неудобно.
Как сделать так, чтобы слово, по которому производится поиск - бралось из файла "список.txt" ?
То есть, чтобы эта операция выполнялась сперва для одного слова из списка, потом автоматически - для другого слова из списка.
Тогда не нужно будет создавать скрипт для каждого отдельного поискового слова, и учитывать его в общем скрипте - а достаточно будет просто вписать в список.txt - новое слово.
Сейчас в строке, может учитываться только одно слово:
А если слов, таких как "текст" - будет несколько - их же так не записать.
Помогите изменить скрипт.
Имеется код autoit, который извлекает определенные слова из текстового файла 1.txt и складирует этот извлеченный текст - в файл Текст.txt.
Проблема в том, что поскольку подобных "поисковых слов" много - то приходится под каждое слово использовать свой отдельный скрипт.
А потом объединять эти скрипты - в одном общем скрипте:
Код:
#include <Текст.au3>
#include <Отметка.au3>
Получается, что чем больше "поисковых слов" - тем больше нужно создавать однотипных скриптов и прописывать их в общем скрипте. Это очень неудобно.
Как сделать так, чтобы слово, по которому производится поиск - бралось из файла "список.txt" ?
То есть, чтобы эта операция выполнялась сперва для одного слова из списка, потом автоматически - для другого слова из списка.
Тогда не нужно будет создавать скрипт для каждого отдельного поискового слова, и учитывать его в общем скрипте - а достаточно будет просто вписать в список.txt - новое слово.
Сейчас в строке, может учитываться только одно слово:
Код:
"(*UCP)(?im)(\d+\w+\d{4}).*?текст(\(.+?\),)"
А если слов, таких как "текст" - будет несколько - их же так не записать.
Код:
#;~ AutoIt Version: 3.3.14.5
#include <FileConstants.au3>
#include <StringConstants.au3>
;Local $sFile = FileOpenDialog("", @ScriptDir, "Все (*.*)", $FD_FILEMUSTEXIST)
Local $sFile = @ScriptDir & '\1.txt'
Local $sFile2 = @ScriptDir & '\Текст.txt'
If @error Then Exit
Local $aRegExp = StringRegExp(FileRead($sFile), "(*UCP)(?im)(\d+\w+\d{4}).*?текст(\(.+?\),)", $STR_REGEXPARRAYGLOBALFULLMATCH), $aTemp, $sOut
For $i = 0 To UBound($aRegExp) - 1
$aTemp = $aRegExp[$i]
For $j = 1 To UBound($aTemp) - 1
$sOut &= $aTemp[$j]
Next
$sOut &= @CRLF
Next
;$sFile = FileSaveDialog("", "", "Все (*.*)", $FD_PROMPTOVERWRITE, $sFile)
;$sFile = @ScriptDir/2.txt
If @error Then Exit
Local $hFile = FileOpen($sFile2, $FO_OVERWRITE + $FO_UTF8 + $FO_CREATEPATH)
FileWrite($hFile, StringTrimRight($sOut, 2))
FileClose($hFile)
;ShellExecute($sFile2)