1

Тема: AHK: Копирование из файла части строки (со сдвигом) по условию.

Добрый день. Прошу помощи (форум перекопал но не нашел, и в ридми есть только перенос строк с найденным в другой файл).

Имеется файл с повторяющимися элементами. Нужно при нахождении  CPA>0<CPA подняться на 9 строк вверх, выбрать оттуда все числа и скопировать в другой файл.
Выглядит примерно так

+ открыть спойлер

<offer id="12345" type="vendor.model" available="true">
Строка1
Строка2
Строка3
Строка4
Строка5
Строка6
Строка7
Строка8
CPA>0<CPA
Строка10
Строка11
Строка12
<offer id="67890" type="vendor.model" available="true">
Строка1
Строка2
Строка3
Строка4
Строка5
Строка6
Строка7
Строка8
CPA>1<CPA
Строка10
Строка11
Строка12
<offer id="54321" type="vendor.model" available="true">
Строка1
Строка2
Строка3
Строка4
Строка5
Строка6
Строка7
Строка8
CPA>0<CPA
Строка10
Строка11
Строка12

На выходе должно получиться

+ открыть спойлер

12345
54321

Post's attachments

1.txt 706 b, 4 downloads since 2016-04-08 

You don't have the permssions to download the attachments of this post.

2

Re: AHK: Копирование из файла части строки (со сдвигом) по условию.

var = 
(
<offer id="12345" type="vendor.model" available="true">
Строка1
Строка2
Строка3
Строка4
Строка5
Строка6
Строка7
Строка8
CPA>0<CPA
Строка10
Строка11
Строка12
<offer id="67890" type="vendor.model" available="true">
Строка1
Строка2
Строка3
Строка4
Строка5
Строка6
Строка7
Строка8
CPA>1<CPA
Строка10
Строка11
Строка12
<offer id="54321" type="vendor.model" available="true">
Строка1
Строка2
Строка3
Строка4
Строка5
Строка6
Строка7
Строка8
CPA>0<CPA
Строка10
Строка11
Строка12
)
Pos := 1, match := ""
While Pos := Regexmatch(var, "s)(?:^|\R)<offer id=""(\d*)""(?:[^\r\n]*\R){9}CPA>0<CPA(?:$|\R)", match, Pos+StrLen(match))
   result .= match1 "`n"
msgbox % result

3

Re: AHK: Копирование из файла части строки (со сдвигом) по условию.

 Regexmatch(var, "s)(?:^|\R)<offer id=""(\d*)""(?:[^\r\n]*\R){9}CPA>0<CPA(?:$|\R)", match, Pos+StrLen(match))

Вообще жесть!

4

Re: AHK: Копирование из файла части строки (со сдвигом) по условию.

Malcev
Спасибо!!! Пошел читать Regexmatch.