1

Тема: AHK: Копирование из файла две строки по найденному слову

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

Loop, read, 1_List.txt, 2_List.txt

{
    IfInString, A_LoopReadLine, СЛОВО_ , FileAppend, %A_LoopReadLine% `n 

}


Данный код работает по тексту
:
текст текст текст текст
текст текст текст СЛОВО_ текст текст текст
Любой текст Любой текст
текст текст текст текст

Результат:
Скопировано в файл 2_List.txt: текст текст текст СЛОВО_ текст текст текст

А мне нужно:

текст текст текст СЛОВО_ текст текст текст
Любой текст Любой текст

Помогите пожалуйста.

2

Re: AHK: Копирование из файла две строки по найденному слову

Присвоить строку в переменную text
Запомнить A_Index
Выйти из цикла чтения
Считать строку A_Index+1

3

Re: AHK: Копирование из файла две строки по найденному слову

Это я все понимаю... но как это в коде отобразить...  я как только не пытался...не получается...

4

Re: AHK: Копирование из файла две строки по найденному слову

Text =
(
текст текст текст текст
текст текст текст СЛОВО_ текст текст текст
Любой текст Любой текст
текст текст текст текст
)

MsgBox, % RegExReplace(Text, "sm`aU).*(^[^\n\r]*СЛОВО_.*\R.*)\R.*?", "$1")
Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

5

Re: AHK: Копирование из файла две строки по найденному слову

Loop, read, 1_List.txt ; чтение файла
    {
    IfInString, A_LoopReadLine, СЛОВО_ ; если искомое нашлось...
        {
        LineA := A_LoopReadLine ; присваиваем строку в переменную
        FileReadLine, LineB, 1_List.txt, % A_Index + 1 ; считываем следущюю строку 
        Break ; выход из цикла
        }
    }
FileAppend, %LineA%`n%LineB%, 2_List.txt ;

Это сильно!

MsgBox, % RegExReplace(Text, "sm`aU).*(^[^\n\r]*СЛОВО_.*\R.*)\R.*?", "$1")