1

Тема: AHK: Поиск строки в текстовом файле

Приветствую, как найти в текстовом файле строку с минимальным значением очков и скопировать значение id найденной строки, без квадратных скобок.

Должно быть так:
5.2 124

Текстовый файл:
Очки: 10.1, id [123]
Очки: 5.2, id [124]
Очки: 8.3, id [125]


txt = C:\test.txt

Loop, read, %txt%
{
ifinstring, A_LoopReadLine, Очки: 
RegExMatch(A_LoopReadLine, "([0-9]+\.[0-9]+)", a)
ifinstring, A_LoopReadLine, Очки: 
RegExMatch(A_LoopReadLine, "[[0-9]+]", n)
}
Msgbox %n%
Return

Скрипт копирует последнюю строку.

2

Re: AHK: Поиск строки в текстовом файле

Попробуйте так:

FileRead, text, C:\test.txt
MsgBox % text ; убедитесь, что нет проблем с кодировкой кириллицы
min := 0xFFFFFFFF
id := ""
while RegExMatch(text, "`amO)^Очки: ([\d.]+), id \[(\d+)]$", m, m ? m.Pos + 1 : 1) {
    if (m[1] + 0 < min) {
        min := m[1] + 0
        id := m[2]
    }
}
MsgBox % id
Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

3 (изменено: FeklaLvovna, 2025-05-10 07:24:00)

Re: AHK: Поиск строки в текстовом файле

Благодарю работает, то что надо.

4 (изменено: FeklaLvovna, 2025-05-10 08:15:38)

Re: AHK: Поиск строки в текстовом файле

Еще 1 вопрос, как можно реализовать, что-бы не только по шаблону искал, к примеру если текст будет меняться.

Пример:
[21:02:25] ваши очки: 5.0, id [123]
[22:08:26] Данные:  ваши очки: 3.0, ид [124]
[23:09:29] Данные: очки: 4.0, ваш ид [125]

5

Re: AHK: Поиск строки в текстовом файле

А какие части строки наверняка будут постоянными?

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

6

Re: AHK: Поиск строки в текстовом файле

teadrinker
Очки, id, остальное меняется, в начале еще добавляется время

[21:02:25] очки: 5.0, id [123]
[22:08:26] очки: 3.0, id [124]
[23:09:29] очки: 4.0, id [125]

7

Re: AHK: Поиск строки в текстовом файле

FileRead, text, C:\test.txt
min := 0xFFFFFFFF
id := ""
while RegExMatch(text, "`amO)(?:О|о)чки: ([\d.]+),.*\[(\d+)]$", m, m ? m.Pos + 1 : 1) {
    if (m[1] + 0 < min) {
        min := m[1] + 0
        id := m[2]
    }
}
MsgBox % id
Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

8

Re: AHK: Поиск строки в текстовом файле

teadrinker
Извиняюсь, помогите еще составить регулярное выражение под такую строку.
[21:35:39] - Информация: Очки 250.12 изумруд(ов). Введите {FFFFFF}"/accept [ 100 ]"{3B9FF3} чтобы взять предмет

так-же нужно извлечь числа
очки 250.12
accept 100

9

Re: AHK: Поиск строки в текстовом файле

Судя по всему, вам скрипт нужен для игры, переношу в тему по играм. Не забывайте использовать заглавные буквы и точки.

FeklaLvovna пишет:

помогите еще составить регулярное выражение

А как насчёт попробовать самостоятельно?

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

10

Re: AHK: Поиск строки в текстовом файле

teadrinker
Я не такой умный как вы. Честно я ничего не понимаю в этих регулярках
Ну вот что это такое "`amO)(?:О|о) как это можно понять ?
Вот это ([\d.]+) понятно, ищет числа

11

Re: AHK: Поиск строки в текстовом файле

teadrinker пишет:

Не забывайте использовать заглавные буквы и точки.

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