Stepanik537 |
Дата: Среда, 14.02.2018, 15:56 | Сообщение # 1
|
Новичок
Сообщений: 1
Статус: Offline
|
Привет. Объясняю суть моей проблемы: у меня очень слабое познание в regexmatch на ахк и даже на Regex101 - online regex editor and debugger(https://regex101.com/) я мало чего могу сделать. В общем, я пишу свой скрипт для SA:MP и там у меня при отыгровке инвайта игрока, его увольнения, выдачи выговора итд пишутся действия в текстовый документ в формате Дата || Время || Действие || Nick_Name || №скриншота. И сейчас у меня дошли руки до того, чтобы переписать GUI для скрипта и принял решение сделать вывод информации из этого файла в ListView, который можно как показать так и спрятать. При загрузке скрипта файл уже читается и все переводится в переменную A_LoopReadLine, после чего обрабатывается в регексе и выводится в listview. Хочу сделать что-то наподобие сортировки и выводить данные по пункту, выбранному в dropdownlist, но... Проблема-то в том, что у меня эти "out" пустые и я не знаю, как правильно написать RegExMatch для строчки, подобной вот этой.
Цитата 11 Февраль 2018 || 00:26 || Принятый игрок || Antonio_Mon || Скриншот: 13
Код Gui, Add, ListView, x389 y25 w604 h418 vListlog, Дата|Время|Никнейм|Скриншот Loop, read, %A_AppData%\[AHK] Min Defence\logfiless.txt if A_LoopReadLine { RegExMatch(A_LoopReadLine, "([0-9]*) ([А-я]*) ([0-9]*) \|\| ([0-9]+):([0-9]+) \|\| Принятый игрок \|\| ([A-z_]+) ([A-z_]+) \|\| Скриншот: ([0-9]*)", out) Gui, Font, CDefault s8 AddRow(out1 " " out2 " " out3 "," out4 "," out5 ":" out6 "," out7 "_" out8 "," out9) sleep, 10 }
Помощь требуется в строчке с RegExMatch и AddRow(out1, .......).
на AddRow используется функция:
Код AddRow(Data, Delimiters=",") { CurColCount := LV_GetCount("Column") LV_Add("") CurRowCount := LV_GetCount() Loop, parse, Data, %Delimiters% { if(A_Index>CurColCount) LV_InsertCol(A_Index, "", "column_" . A_Index) LV_Modify(CurRowCount, "Col" . A_Index, A_LoopField) } LV_ModifyCol() return }
|
|
|
|
Toopie |
Дата: Среда, 14.02.2018, 18:06 | Сообщение # 2
|
Боец
Сообщений: 122
Статус: Offline
|
В регулярных выражениях в AHK нет модуля А-Яа-я:
Код ^(\d{1,2})\s(.*)\s(\d{4})\s\|\|\s(\d{2}):(\d{2})\s\|\|\sПринятый\sигрок\s\|\|\s(\w+)_(\w+)\s\|\|\sСкриншот:\s(\d+)$
лучший в мире самп сервер 185.159.129.71:7777 лидерки админки да
Сообщение отредактировал Toopie - Среда, 14.02.2018, 18:07 |
|
|
|
Rinat_Namazov |
Дата: Среда, 14.02.2018, 19:02 | Сообщение # 3
|
Боец
Сообщений: 122
Статус: Offline
|
Парсить лучше, а не регуляркой.
Код Loop, Parse, Log, || { MsgBox, % A_LoopField }
Или
Код Log := StrSplit(String, "||", "") Loop, % Log.MaxIndex() { MsgBox, % Log[A_Index] }
Вообще-то тебе в тему AHK Программирование, а не суды
|
|
|
|
CZAR |
Дата: Пятница, 16.02.2018, 01:56 | Сообщение # 4
|
Czar Of Scripts
Сообщений: 1373
Статус: Offline
|
Toopie, почему нету? Есть же.
Код (\d+) ([А-я]+) (\d+) \|\| (.*) \|\| Принятый игрок \|\| ([A-z_]+) \|\| Скриншот: (\d+)
Я в ВК Ушел в веб.
• Ничего не покупаю. • Способы не проверяю.
У меня теперь новый домен, если ссылка не работает - напишите.
Гарант Cheat-Master: *тема* AHK [S-RP] House Finder / House Teleporter [SAMP] Online Counter [S-RP] [For Event] Show Star [S-RP] AntiCasino [S-RP] [BOT] Auto Fisher + Auto Find Worm + Auto Cook [S-RP] [BOT] /dance Winner | Делаем розыгрыши среди участников темы. SAMP-UDF [AHK Урок] Выбор в диалогах мышкой и enter`ом [SAMP] Быстрый ответ на СМС [ERP] Помощник для адвоката [DRP] FakeTime Достижения: - 26.02.2017 - 03.01.2018 - 26.05.2018 - 22.09.2018 - 04.04.2019
Сообщение отредактировал Phoenixxx_Czar - Пятница, 16.02.2018, 02:00 |
|
|
|