1 (изменено: RellaX, 2016-09-05 18:00:22)

Тема: Помощь с "InStr"

Приветствую, столкнулся с такой проблемой:
Допустим мне приходит сообщение в SAMP'e (Сообщение от Member[0]: У вас 101 ошибка).
- я вывожу через RegExMatch текст (У вас 101 ошибка), как мне сделать чтобы "InStr" увидел любое число там где "101" и запомнил его?
p.s На месте (У вас 101 ошибка) может быть рандомный текст и рандомное расположение слов.

2

Re: Помощь с "InStr"

А RegExMatch чем не устраивает? Там часть текста можно заключить в сабпаттерн и вывести его.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

3 (изменено: Drusik, 2016-09-05 01:50:59)

Re: Помощь с "InStr"

Если я правильно понял, вам нужно что-то типо такого

global chat_log := A_MyDocuments "\GTA San Andreas User Files\SAMP\chatlog.txt"  ; путь к chatlog

    log := {str:"",find:0,num:0}    ,    log.str := []

    Loop, read, %chat_log%
    log.str.Insert(A_LoopReadLine)    ,log.num := A_Index
	
	loop 3
    if RegExMatch(     log.str[log.num + 1 - A_Index]
        ,"Сообщение от (.*)\[(.*)\]: У вас (.*) ошибка"
        , massage) and (log.find:=log.num + 1 - A_Index)
            break
			
	sendinput {f6}Вам сообщение от %massage1%[%massage2%]: У вас ошибка %massage3%{space}		

4 (изменено: RellaX, 2016-09-05 18:00:10)

Re: Помощь с "InStr"

Я немного не дописал видимо, там-где "У вас 101 ошибка" - так-же может быть рандомный текст и рандомное расположение слов, который напишет другой игрок.

5

Re: Помощь с "InStr"

RellaX, допишите точки в конце предложений, пожалуйста.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

6

Re: Помощь с "InStr"

teadrinker, сделано

7

Re: Помощь с "InStr"

RellaX

Так и не суть, манипулируйте шаблоном как хотите

"Сообщение от (.*)\[(.*)\]: У вас (.*) ошибка"

К примеру если у вас еще и включен timestamp то делаем так

"\[(.*)\] Сообщение от (.*)\[(.*)\]:(.*)

если нужно быстро ответить на это смс то

sendinput{F6}/sms %masage3% текст{space}

где %masage3% отобразит ID человека который вам написал.

8

Re: Помощь с "InStr"

Drusik, Мне нужен ид не того кто написал, а тот который указан после ":".

9 (изменено: RellaX, 2016-09-08 16:36:57)

Re: Помощь с "InStr"

Решил проблему сам.


RegExMatch(chatolg, "Сообщение от Member[0]: .*?(\d+).*" apm)
apm1 = 101