[Вопрос] Неизвестное начало искомой строки
|
|
zombieserv |
Дата: Среда, 15.02.2017, 12:48 | Сообщение # 1
|
Новичок
Сообщений: 13
Статус: Offline
|
Всем привет! Вопрос вот какой:
Вот отрывок кода:
Код SelectedFile = %A_MyDocuments%\GTA San Andreas User Files\CR-MP\GenerationC\chatlog.txt Loop, Read, %SelectedFile% { IfInString, A_LoopReadLine, Вы повысили игрока Goto, pov (форма: Вы повысили игрока Nick_Name до звания Звание) Он работает - на pov: перебрасывает стабильно.
А как быть, если первое слово неизвестно? (форма: Nick_Name теперь состоит во Фракция) Как поймать эту строчку?Добавлено (15.02.2017, 12:48) --------------------------------------------- Другими словами, как мне парсить и записывать в переменную строку, начинающуюся с ника? Спасибо!
|
|
|
|
[CM]DonHomka |
Дата: Среда, 15.02.2017, 13:02 | Сообщение # 2
|
Любитель
Сообщений: 39
Статус: Offline
|
В этом случае можно использовать регулярные выражения.
Код if(RegExMatch(A_LoopReadLine, "^(.*) теперь состоит во фрации", result)) result1 будет равно нику игрока.
|
|
|
|
McFree_ |
Дата: Среда, 15.02.2017, 13:24 | Сообщение # 3
|
В рядах СМ.
Сообщений: 321
Статус: Offline
|
Советую учить регулярные выражения
Помогаю новичкам! По всем вопросам в ЛС!
|
|
|
|
zombieserv |
Дата: Среда, 15.02.2017, 13:27 | Сообщение # 4
|
Новичок
Сообщений: 13
Статус: Offline
|
Цитата [CM]DonHomka ( ![Ссылка на цитируемый текст](/.s/img/fr/ic/4/lastpost.gif) ) if(RegExMatch(A_LoopReadLine, "^(.*) теперь состоит во фрации", result)) Спасибо за ответ, но почему-то не помогло. Вот, посмотрите:
Код Loop, Read, %SelectedFile% { IfInString, A_LoopReadLine, Вы повысили игрока Goto, pov IfInString, A_LoopReadLine, Вы понизили игрока Goto, pon IfInString, A_LoopReadLine, Вы уволили игрока Goto, uval if(RegExMatch(A_LoopReadLine, "^(.*) теперь состоит во фракции", result)) { Goto, invite } }
|
|
|
|
[CM]DonHomka |
Дата: Среда, 15.02.2017, 13:33 | Сообщение # 5
|
Любитель
Сообщений: 39
Статус: Offline
|
zombieserv, пришли сообщение из чат лога как оно есть.
|
|
|
|
zombieserv |
Дата: Среда, 15.02.2017, 13:35 | Сообщение # 6
|
Новичок
Сообщений: 13
Статус: Offline
|
Код [10:29:34] Diego_Bernarduo теперь состоит в Полиция
|
|
|
|
[CM]DonHomka |
Дата: Среда, 15.02.2017, 14:09 | Сообщение # 7
|
Любитель
Сообщений: 39
Статус: Offline
|
Код if(RegExMatch(A_LoopReadLine, "^(.*) теперь состоит в", result))
|
|
|
|
McFree_ |
Дата: Среда, 15.02.2017, 15:17 | Сообщение # 8
|
В рядах СМ.
Сообщений: 321
Статус: Offline
|
Строка: [10:29:34] Diego_Bernarduo теперь состоит в Полиция Выражение:\[([0-9]+):([0-9]+):([0-9]+)\] (.*) теперь состоит в (.*)
Возвращаемые данные: Out1 = 10 Out2 = 29 Out3 = 34 Out4 = Diego_Bernarduo Out5 = Полиция
Вставка в код:
Код RegExMatch(A_LoopReadLine, "^(.*) теперь состоит в", result) if (result4 != "" && result5 != "") { MsgBox,, Найдено, Время принятия: %result1%:%result2%:%result3% }
Помогаю новичкам! По всем вопросам в ЛС!
Сообщение отредактировал McFree_ - Среда, 15.02.2017, 15:17 |
|
|
|
zombieserv |
Дата: Четверг, 16.02.2017, 18:19 | Сообщение # 9
|
Новичок
Сообщений: 13
Статус: Offline
|
[CM]DonHomka, McFree_, спасибо! Проблема решена!
|
|
|
|
McFree_ |
Дата: Четверг, 16.02.2017, 18:25 | Сообщение # 10
|
В рядах СМ.
Сообщений: 321
Статус: Offline
|
Не за что
Помогаю новичкам! По всем вопросам в ЛС!
|
|
|
|