1

Тема: Скрипт работает плохо

Сам скрипт:

FileCLog:=% A_MyDocuments "\GTA San Andreas User Files\SAMP\chatlog.txt"
!1:: 
loop
{

lastline := GetNewLine(FileCLog)



If lastline contains HELLO
{
Sendinput {F6}TEST{ENTER}
}

}

GetNewLine(filename)
{ ;функция чтения последней строки, если файл изменен каждыее 100 мс
static old
static new
if !old
{
FileGetSize, old, %filename%
new := old
}
while old = new
{
sleep 100
FileGetSize, new, %filename%
}
old := new
Loop, read, %filename%
if A_LoopReadLine
{
last := A_LoopReadLine ;последняя строка
}
return last
}

Кратко, смысл скрипта: когда в чате появляется слово HELLO, написанное ЗАГЛАВНЫМИ буквами, то в чат автоматически отправляется слово TEST

Когда в строке

If lastline contains HELLO

слово HELLO написано заглавными буквами, то скрипт не реагирует, а если слово hello написано маленькими буквами, то все отлично работает. Как решить эту проблему, мне нужно, чтобы скрипт реагировал именно тогда, когда это слово написано заглавными

ЗАРАНЕЕ СПАСИБО

2 (изменено: powercat, 2018-06-29 02:07:48)

Re: Скрипт работает плохо

if RegExMatch(lastline, "^([\s,A-z,0-9]{0,9999})HELLO([\s,A-z,0-9]{0,9999})$")

Вроде работает так. Если что см. документацию RegEx.

3

Re: Скрипт работает плохо

if InStr(lastline, "HELLO", true)
Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

4

Re: Скрипт работает плохо

kytteroyer пишет:

Когда в строке

If lastline contains HELLO

слово HELLO написано заглавными буквами, то скрипт не реагирует, а если слово hello написано маленькими буквами, то все отлично работает.

Непонятно, что у вас не работает.
StringCaseSense у вас не прописан - должно срабатывать в любом случае:

lastline = hello
If lastline contains HELLO
   msgbox
lastline = HELLO
If lastline contains HELLO
   msgbox