Что нового

[Данные, строки] Поиск определенных данных в txt и копирование их в другой txt

erience

Новичок
Сообщения
1
Репутация
0
Добрейшего времени суток форумчане.


Обратится хочу к вам с вопросом таким.

Есть несколько текстовых файлов, в которых нужно осуществить поиск информации с помощью регулярного выражения,
и переносом полученной информации в другой текстовый файл.

Поиском по форуму был найден следующий скрипт

Пробуйте
Код:
$source = FileOpen("source.txt") ; файл-источник
$dest = FileOpen("dest.txt", 2) ; файл-получатель
$template = "Текст"

While 1
  $str = FileReadLine($source)
  If @error = -1 Then ExitLoop
  If StringInStr($str, $template) = 1 Then
    FileWriteLine($dest, $str)
  EndIf
WEnd

FileClose($source)
FileClose($dest)

для регулярного выражения изменил его вот так

Код:
$source = FileOpen("source.txt") ; файл-источник
$dest = FileOpen("dest.txt", 2) ; файл-получатель
$template = "Текст"

While 1
  $str = FileReadLine($source)
  If @error = -1 Then ExitLoop
  If StringRegExp($str, $template) = 1 Then
    FileWriteLine($dest, $str)
  EndIf
WEnd

FileClose($source)
FileClose($dest)


но проблема заключается в том, что мне не нужна вся строка, а нужен лишь результат поиска в новом текстовом файле.
Прошу о помощи и да прибудет с нами сила =)
 

InnI

AutoIT Гуру
Сообщения
4,930
Репутация
1,434
Код:
While 1
  $str = FileReadLine($source)
  If @error = -1 Then ExitLoop
  $arr = StringRegExp($str, $template, 3)
  If Not @error Then FileWriteLine($dest, $arr[0])
WEnd
 

grand

Новичок
Сообщения
1
Репутация
0
$template = "Текст"
Здесь как можно указать чтобы выводил все слова после найденного "Текст"
"Текст был написан Владимиром"

Мой код выводит только Текст а строки после не выводятся.
 
Последнее редактирование:

Norm

Продвинутый
Сообщения
290
Репутация
74
FileReadLine() и FileWriteLine() не самый оптимальный способ решения данной задачи
Код:
#cs ; В этом тексте находятся строки, в которых присутствует слово "Текст"
$sString = "Регуля́рные выраже́ния (англ. regular expressions) — формальный язык," & @CRLF & _
            "используемый в компьютерных программах, работающих с" & @CRLF & _
            "текстом, для поиска и осуществления манипуляций с подстроками в " & @CRLF & _
            "тексте, основанный на использовании метасимволов (символов-джокеров, англ. wildcard characters)." & @CRLF & _
            "Для поиска используется строка-образец " & @CRLF & _
            "(англ. pattern, по-русски её часто называют «шаблоном», «маской»)," & @CRLF & _
            "состоящая из символов и метасимволов и задающая правило поиска." & @CRLF & _
            "Для манипуляций с текстом дополнительно задаётся строка замены," & @CRLF & _
            "которая также может содержать в себе специальные символы. "
#ce

$template = "Текст"
$sString = FileRead(@ScriptDir &"\source.txt") ; файл-источник
$aArray = StringRegExp($sString, "(?i)("& $template &".+)", 3)
$sString = ""
For $sString2 In $aArray
    $sString &= $sString2 & @CRLF
Next
$dest = FileOpen(@ScriptDir &"\dest.txt", 2) ; файл-получатель
FileWrite($dest, $sString)
FileClose($dest)
 
Последнее редактирование:
Верх