![]() |
|
Модераторы: diadiavova, gambit |
![]()
|
|
| DENSHER |
|
||||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 179 Регистрация: 3.3.2010 Репутация: нет Всего: нет |
Здрасте
Возникла некая проблема с Regex.Match, поскольку я новичок по этому направлению. Я оперяюсь для поиска на переменную NamePlayer(Имя игрока), но когда в имени присутствую такие символы как: ?, ), ] ит.д совпадение не работает - пример ниже. Строчка примера выглядит так: # 405 ""Найк > you player? o_O"" STEAM_0:1:11223344 25:35 22 0 active 87.255.14.67:27005 и таких строчек может набраться до 54: В именах(никах) могут быть разные буквы, цифры, символы абракадабры - короче целый букет.
Возможно я что-то неправильно сделал? Если ,да! Подскажите правильно решение. Если же все более или менее терпимо , то как обойти конфликтующие символы , все которые могут войти в конфликт (это меня наверное уже не туда несет). Это сообщение отредактировал(а) DENSHER - 8.5.2011, 18:45 |
||||
|
|||||
| krewin |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 120 Регистрация: 27.8.2009 Репутация: 1 Всего: 1 |
А что так сделать нельзя
|
|||
|
||||
| DENSHER |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 179 Регистрация: 3.3.2010 Репутация: нет Всего: нет |
krewin, в своем примеры ты показал как найти имя в одной строчки,но это не то.
Я делаю поиск имени для получения SteamID и Ip-адреса. Приблизительно должно происходить так:
Что-то вроде такого. Также, в первом посте дополнил код - может поможет легче понять сею проблему. Это сообщение отредактировал(а) DENSHER - 8.5.2011, 18:47 |
|||
|
||||
| krewin |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 120 Регистрация: 27.8.2009 Репутация: 1 Всего: 1 |
вот
|
|||
|
||||
| DENSHER |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 179 Регистрация: 3.3.2010 Репутация: нет Всего: нет |
Огромное спасибо
Это сообщение отредактировал(а) DENSHER - 9.5.2011, 00:25 |
|||
|
||||
| diadiavova |
|
|||
![]() Доктор Зло(диагност, настоящий, с лицензией и полномочиями) ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5821 Регистрация: 14.8.2008 Где: В Коньфпольте Репутация: 8 Всего: 142 |
DENSHER, а не проще ли хранить список в виде XML документа?
-------------------- Хочешь получить мудрый совет - читай подписи участников форумов. Злой доктор Щасзаболит |
|||
|
||||
| DENSHER |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 179 Регистрация: 3.3.2010 Репутация: нет Всего: нет |
Список может обновляться каждую секунду , из-за этого XML не подходит.
|
|||
|
||||
| diadiavova |
|
|||
![]() Доктор Зло(диагност, настоящий, с лицензией и полномочиями) ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5821 Регистрация: 14.8.2008 Где: В Коньфпольте Репутация: 8 Всего: 142 |
В любом случае, искать по списку и извлекать из него инфу проще из хмл или из списка объектов, а не из текста. Извлекать данные действительно проще регуляркой, поскольку ты сможешь в один проход получить все данные сразу и потом просто работать с ними. С составлением могу помочь, если ты объяснишь более детально, что означают данные в строках и что конкретно надо извлекать. -------------------- Хочешь получить мудрый совет - читай подписи участников форумов. Злой доктор Щасзаболит |
|||
|
||||
| DENSHER |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 179 Регистрация: 3.3.2010 Репутация: нет Всего: нет |
Я получаю с удаленного сервера на переменную(например textinfo) вот такой вот текст:
затем, я из списка игроков(с элемента ListPlayer) выбираю имя и ищу его в переменной textinfo. После нахождения имени мне нужно, получить STEAM_0:0:XXXXXXX и ip-адрес(без порта) - в зависимости от выбора (эти данные нужны для блокировки игрока(ban)) Например - я ищу имя Bals в переменной textinfo и после нахождения я получаю его STEAM_0:1:37666416 46:12 и 198.141.43.131 и после этого я могу выбрать как этого игрока забанить, по SteamID или ip-адресу! Вот такая вот картинка вырисовывается. |
|||
|
||||
| diadiavova |
|
||||||||
![]() Доктор Зло(диагност, настоящий, с лицензией и полномочиями) ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5821 Регистрация: 14.8.2008 Где: В Коньфпольте Репутация: 8 Всего: 142 |
Значит так... Регулярное выражение объявишь следующим образом
Дальше его методу Mathes передашь свой список и получишь список игроков в виде списка объектов Match. Чтобы удобнее было работать с игроками создай специальную структуру Player
Преобразовать найденные соответствия в список игроков можно с помощью простого линк-запроса (покажу в виде функции)
Имея список в виде коллекции игроков можно легко найти кого угодно, к примеру с помощью линковского метода FirstOrDefault
Это в любом случае лучше, чем рыскать по тексту(тем более, что в этом случае все равно придется потом разбирать строку) -------------------- Хочешь получить мудрый совет - читай подписи участников форумов. Злой доктор Щасзаболит |
||||||||
|
|||||||||
| DENSHER |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 179 Регистрация: 3.3.2010 Репутация: нет Всего: нет |
diadiavova, спасибо, так действительно проще.
|
|||
|
||||
![]()
|
| Правила форума VB .NET | |
|
|
Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, diadiavova. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | VB .NET | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |