Вопрос по ахк

Статус
В этой теме нельзя размещать новые ответы.

Bond_Jems

Известный
Автор темы
18
0
Здравствуйте, не могу понять как достать из чата название машины и записать в переменную.
Т.е. при определённом тексте скрипт берет из текста название машины и записывает в переменную, а уже из переменной это выводиться в чат.
Нужно достать из строчки
Код:
[ Завод ] {FFFFFF}Производство автомобиля {FF6347}Huntley{FFFFFF} на линии
марку машины, в данном случае Huntley. И записать в переменную car. Что бы на выходе получилось что то на подобии такого:
Код:
/fam слетел Huntley
Буду очень благодарен если поможите
Вот код:
Код:
numpad5::
File = %A_MyDocuments%\Gta San Andreas User Files/SAMP/chatlog.txt ; 
FileDelete, %file% ; 
FileAppend, %file% ; 
2:
FileRead, read, %file% ; 
car := RegExMatch(A_LoopReadLine, "[ Завод ] {FFFFFF}Производство автомобиля {FF6347}%car%{FFFFFF} на линии")
if read contains Производство автомобиля {FF6347} ;
{ 
SendMessage, 0x50,, 0x4090409,, A ; 
    SendInput, {f6}/fam слетел %car%{enter} ; 
FileDelete, %file% ; 
FileAppend, %file% ; 
}
goto 2  ; 
return  ; 
NumPad9::
reload 
return
 

RTD

Потужно
Модератор
399
470
Код:
global FileCLog:=% A_MyDocuments "\GTA San Andreas User Files\SAMP\chatlog.txt"
loop
{
lastline := GetNewLine(FileCLog)
if(RegExMatch(lastline, "\[\d+:\d+:\d+\]\s\[\sЗавод\s\]\s\{F{6}}Производство\sавтомобиля\s\{F{2}\d{4}\}(\w+)\{F{6}\}\sна\sлинии", namecar) { ;Возможно, что регулярка не будет работать у тебя, по этому вот запасной шаблон: .*\{FF\d+\}(.*)\{F{6}\}.*
SendInput, {F6}/fam Слетел %namecar1%{Enter}
}
}
GetNewLine(filename)
{
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
}
 
Последнее редактирование:
  • Нравится
Реакции: Bond_Jems

Bond_Jems

Известный
Автор темы
18
0
global FileCLog:=% A_MyDocuments "\GTA San Andreas User Files\SAMP\chatlog.txt"
loop
{
lastline := GetNewLine(FileCLog)
if(RegExMatch(lastline, "\[\d+:\d+:\d+\]\s\[\sЗавод\s\]\s\{F{6}}Производство\sавтомобиля\s\{F{2}\d{4}\}(\w+)\{F{6}\}\sна\sлинии", namecar) { ;Возможно, что регулярка не будет работать у тебя, по этому вот запасной шаблон: .*\{FF\d+\}(.*)\{F{6}\}.*
SendInput, {F6}/fam Слетел %namecar1%{Enter}
}
}
GetNewLine(filename)
{
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
}
Спасибо, работает.
 
Статус
В этой теме нельзя размещать новые ответы.