Что нового

Извлечение из txt записей - в разные текстовые файлы

Snegovik

Чайник
Сообщения
41
Репутация
0
Здравствуйте.
Помогите решить проблему с текстом.

Есть текстовый файл.
В нем находится табулированный разнообразный текст.
Также в тексте встречаются записи которые начинаются на "текст(" и заканчиваются символами "),"

Как скриптом - создать файл текст.txt и построчно извлечь в него - все записи найденные в 1.txt записи , которые начинаются на "текст(" и заканчиваются символами ")," ?
И к каждой этой записи - нужно как-то присоединить дату, которая идет в начале каждой строки txt.

В итоге в созданный файл текст.txt должно вписаться:
15дек2018 (ufdd iy67yujkuyu uhifb3 hr478034 ,),
29дек2018 (uiyeruy fb3 hr478034 ,),
29янв2019 (uiy35c3848u34nv734y596vn34eruy fb3 hr478034 ,),
14фев2019 (u435ghtj54 5567),
 

Вложения

  • 1,6 КБ Просмотры: 2

Tempo

Скриптер
Сообщения
495
Репутация
145
Код:
;~ AutoIt Version: 3.3.14.5
#include <FileConstants.au3>
#include <StringConstants.au3>

Local $sFile = FileOpenDialog("", @ScriptDir, "Все (*.*)", $FD_FILEMUSTEXIST)
If @error Then Exit

Local $aRegExp = StringRegExp(FileRead($sFile), "(*UCP)(?im)^(\d{1,2}\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)
If @error Then Exit

Local $hFile = FileOpen($sFile, $FO_OVERWRITE + $FO_UTF8 + $FO_CREATEPATH)
FileWrite($hFile, StringTrimRight($sOut, 2))
FileClose($hFile)
ShellExecute($sFile)
 
Последнее редактирование:
Автор
S

Snegovik

Чайник
Сообщения
41
Репутация
0
Большое спасибо.
А вот не подскажете, как сделать чтобы слово, по которому производится поиск - бралось из файла "список.txt" ?
То есть, чтобы эта операция выполнялась сперва для одного слова из списка, потом автоматически - для другого слова из списка.

Потому что вы сейчас пишете
"(*UCP)(?im)(\d+\w+\d{4}).*?текст(\(.+?\),)"
А если слов, таких как "текст" - будет несколько - их же так не записать.
 

Вложения

Верх