[Вопрос] Неизвестное начало искомой строки - Форум Cheat-Master.ru
  • Страница 1 из 1
  • 1
Модератор форума: Sanoxxx, Alowir, Phoenixxx_Czar  
[Вопрос] Неизвестное начало искомой строки
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 ()
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
Не за что

Помогаю новичкам!
По всем вопросам в ЛС!
  • Страница 1 из 1
  • 1
Поиск:
Статистика Форума