Вопросы по AHK-скриптингу

Di3

Участник
432
20
Приведи суда текст в котором плохо работает.
Код:
!N::
{
chatlog:= A_MyDocuments "\GTA San Andreas User Files\SAMP\chatlog.txt"
GetNumberLineForText(chatlog, str)
{
    Loop, Read, %chatlog%
    {
        if (InStr(A_LoopReadLine, str))
            return A_Index
    }
    return false
}

addChatMessage(GetNumberLineForText(chatlog, "[23:31:17] Не повторяйте это действие во избежание наказания."))

}
 

#Rin

Известный
Всефорумный модератор
1,214
1,036
Код:
!N::
{
chatlog:= A_MyDocuments "\GTA San Andreas User Files\SAMP\chatlog.txt"
GetNumberLineForText(chatlog, str)
{
    Loop, Read, %chatlog%
    {
        if (InStr(A_LoopReadLine, str))
            return A_Index
    }
    return false
}

addChatMessage(GetNumberLineForText(chatlog, "[23:31:17] Не повторяйте это действие во избежание наказания."))

}
С кодом все ясно, я говорю про текст в чатлоге.
 

Di3

Участник
432
20
С кодом все ясно, я говорю про текст в чатлоге.
Код:
[23:31:17] [A] Thomas_Catton[615]: /jail 761 30 спам /kiss  /Томас

[23:31:17] {FF0000}Принята форма: {FF00FF}[/jail 761 30 спам /kiss  /Томас]

[23:31:17] Christopher_Dills 222 подозревается в попытке слива! - - - - спам /kiss  /Томас

[23:31:17] В таких сообщениях запрещается использовать английские символы!

[23:31:17] Не повторяйте это действие во избежание наказания.

[23:31:17] [A] Christopher_Dills[222]: +

[23:31:17] {FCAA4D}[VIP] Объявление: Купля///Куплю дом в любой точке штатаБюджет30.000.000. Отправил: Stix_Salieri[702] Тел. 5999799

[23:31:17] {C17C2D}    Отредактировал сотрудник СМИ [ LV ] : Graph_Mahone[494]

[23:31:18] Администратор Tamada_Cooper[893] ответил игроку Sasha_Morjinskiy[800]:{FFFFFF} Проверте на карте
вот пару строк с чат лога,или тебе весь файл скинуть?
 

Di3

Участник
432
20
К стати,можно ли этот текст будет,по такой же схеме удалить данную строку с файла,к примеру тот же Чатлог
 

#Rin

Известный
Всефорумный модератор
1,214
1,036
вот пару строк с чат лога,или тебе весь файл скинуть?
Ну вернула 9 строку, где этот текст и был.
upload_2018-4-23_22-59-5.png


К стати,можно ли этот текст будет,по такой же схеме удалить данную строку с файла,к примеру тот же Чатлог
Нужна записывать каждую строку в переменную (массив или дополнять через .=)
После нахождения нужной строки, в переменную просто ничего не записывать.
Перезаписать файл.
 
Последнее редактирование:

Di3

Участник
432
20
Ну вернула 9 строку, где этот текст и был.
Посмотреть вложение 13443


Нужна записывать каждую строку в переменную (массив или дополнять через .:)
После нахождения нужной строки, в переменную просто ничего не записывать.
Перезаписать файл.
Он не левые цифры давал оказывается,Просто в сампе последняя чат идет снизу в вверх, а в чат логе запись с верху вниз,а мне надо чтобы строка чат лога , была равна строке чата.
 

#Rin

Известный
Всефорумный модератор
1,214
1,036
Он не левые цифры давал оказывается,Просто в сампе последняя чат идет снизу в вверх, а в чат логе запись с верху вниз,а мне надо чтобы строка чат лога , была равна строке чата.
Хреново объяснил.
 

Kolya_Kortez

Участник
49
3
Если это для чтения чатлога с конца, то это это вызывает потери производительности.
AutoHotKey:
file := "file.txt", TotalLines := 0
Loop, Read, %file%
    TotalLines++

Loop, % TotalLines
{
    FileReadLine, line, %file%, % TotalLines - A_Index + 1
    MsgBox, 4, Test, % "Строка №" TotalLines - A_Index + 1 ":`n" line "`nПродолжить?"
    IfMsgBox, No
        break
}
Мне нужно чтобы он с конца считал, без определённой строки.
мне нужно регуляркой поиск по файлу с конца сделать.
If RegExMatch( A_LoopReadLine, "Nik \[(.*)] R-IP \[(.*)] IP \[(.*)]", line)

а скрипт который вы дали, он не то делает.
 

#Rin

Известный
Всефорумный модератор
1,214
1,036
Мне нужно чтобы он с конца считал, без определённой строки.
мне нужно регуляркой поиск по файлу с конца сделать.
If RegExMatch( A_LoopReadLine, "Nik \[(.*)] R-IP \[(.*)] IP \[(.*)]", line)

а скрипт который вы дали, он не то делает.
Где ты видишь сложность в переделке кода с демо примером?
Переменная line содержит текст строки.
 

Kolya_Kortez

Участник
49
3
Где ты видишь сложность в переделке кода с демо примером?
Переменная line содержит текст строки.
а как мне все строки сразу обработать а не поочерёдно? мне нужно пройтись чекером с конца txt файла и найти совпадения по регулярке.
С конца файла txt.
 

#Rin

Известный
Всефорумный модератор
1,214
1,036

#Rin

Известный
Всефорумный модератор
1,214
1,036
Я новичок.. помогите пожалуйста.
AutoHotKey:
file := "file.txt", TotalLines := 0
Loop, Read, %file%
    TotalLines++

Loop, % TotalLines
{
    FileReadLine, line, %file%, % TotalLines - A_Index + 1
    if (RegExMatch(line, "Nik \[(.*)] R-IP \[(.*)] IP \[(.*)]", out))
    {
        ; Твои действия с out1, out2, out3
    }
}
 
  • Нравится
Реакции: Vlad Horii и Kolya_Kortez

Kolya_Kortez

Участник
49
3
AutoHotKey:
file := "file.txt", TotalLines := 0
Loop, Read, %file%
    TotalLines++

Loop, % TotalLines
{
    FileReadLine, line, %file%, % TotalLines - A_Index + 1
    if (RegExMatch(line, "Nik \[(.*)] R-IP \[(.*)] IP \[(.*)]", out))
    {
        ; Твои действия с out1, out2, out3
    }
}
Я так счастлив, я так рад. У меня есть ты. Хочу сказать: "благодарю" И говорю: "Merci". Merci - благодарю тебя. Merci - спасибо, что ты есть!
 
  • Нравится
Реакции: Vlad Horii и #Rin