1 (изменено: wladkokopops, 2019-04-08 16:34:55)

Тема: AHK: массовое Сравнение переменных

Привет еще раз форумчане, пишу простенького бота для беседы вк, и столкнулся с проблемой в написании кода:



Token := "VKTOKEN"
ID := "147" ;- Айди переписки беседы
count := "5" ; сколько сообщений возвращать , мне нужно 5 последних


start: 
loop {
ComObjError(false) 
whr := ComObjCreate("WinHttp.WinHttpRequest.5.1") 
whr.Open("POST", "https://api.vk.com/method/messages.getHistory?count=" count "&chat_id=" ID "&access_token=" Token "&v=5.85", true) 
whr.SetRequestHeader("User-Agent", "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36") 
whr.SetRequestHeader("Content-Type","application/x-www-form-urlencoded") 
whr.Send() 
whr.WaitForResponse() 
jsontext := % whr.ResponseText
JSON = 
(LTrim Join 
%jsontext% 
) 
htmldoc := ComObjCreate("htmlfile") 
Script := htmldoc.Script 
Script.execScript(" ", "JScript") 
oJSON := Script.eval("(" . JSON . ")")
;-----последнее
text := % oJSON.response.items.0.text ; - Текст последнего сообщения
from := % oJSON.response.items.0.from_id ; - Кто написал (его айди) последнее сообщене
idsms := % oJSON.response.items.0.id ; - айди последнего сообщения
;-----последнее перед ним 1
text1 := % oJSON.response.items.1.text ; - Текст последнего сообщения
from1 := % oJSON.response.items.1.from_id ; - Кто написал (его айди) последнее сообщене
idsms1 := % oJSON.response.items.1.id ; - айди последнего сообщения
;-----последнее перед ним 2
text2 := % oJSON.response.items.2.text ; - Текст последнего сообщения
from2 := % oJSON.response.items.2.from_id ; - Кто написал (его айди) последнее сообщене
idsms2 := % oJSON.response.items.2.id ; - айди последнего сообщения
;-----последнее перед ним 3
text3 := % oJSON.response.items.3.text ; - Текст последнего сообщения
from3 := % oJSON.response.items.3.from_id ; - Кто написал (его айди) последнее сообщене
idsms3 := % oJSON.response.items.3.id ; - айди последнего сообщения
;-----последнее перед ним 4
text4 := % oJSON.response.items.4.text ; - Текст последнего сообщения
from4 := % oJSON.response.items.4.from_id ; - Кто написал (его айди) последнее сообщене
idsms4 := % oJSON.response.items.4.id ; - айди последнего сообщения

; И так есть у нас 5 сообщений их авторы и текста сообщений
; Как проверить каждый TextN и если нашел слово "Помощь" то выбрать именно айди этого сообщения idsmsN

if text contains то омощь,/help
{
goto helpme
}
goto start

helpme:
msgbox 123
goto start

И так есть у нас 5 сообщений их авторы и текста сообщений,
как проверить каждый TextN и если нашел слово "Помощь" то выбрать именно айди этого сообщения idsmsN, затратив на это меньше кода?

ps. Скрипт json идеален! :-)

2 (изменено: serzh82saratov, 2019-04-08 17:59:24)

Re: AHK: массовое Сравнение переменных

StringCaseSense, Locale

text1 = Текст последнего сообщения
idsms1 = idsms1
text2 = Текст последнего сообщения
idsms2 = idsms2
text3 = Текст последнего Помощь сообщения
idsms3 = idsms3
text4 = Текст последнего сообщения
idsms4 = idsms4
text5 = Текст последнего сообщения Помощь
idsms5 = idsms5

LastMatch := 0  ;	True - Последнее совпадение.
While (A_Index <= 5) && (!InStr(text%A_Index%, "помощь") || (LastMatch, idsms := idsms%A_Index%))
	Continue 
MsgBox % idsms
По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
OS: Win7x64, AutoHotkey_L v1.1.30.03 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui