HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #1  
Старый 10.07.2016, 15:48
itsLegend
Флудер
Регистрация: 23.03.2013
Сообщений: 2,696
С нами: 6915558

Репутация: 183


По умолчанию

Цитата:
Сообщение от iAmerican  

Решил уже . Проблема тут была..

Код:





Код:
#pragma comment(lib, "C:\Program Files (x86)\Microsoft DirectX SDK (June 2010)\Lib\x64\d3d9.lib")


Походу путь просто неправильно читал , указал в проекте путь к библиотекам и все нормально стало.
C:\\Program Files (x86)\\Microsoft DirectX SDK (June 2010)\\Lib\\x64\\d3d9.lib
 
Ответить с цитированием

  #2  
Старый 10.07.2016, 22:47
QGate
Познающий
Регистрация: 27.03.2016
Сообщений: 78
С нами: 5331145

Репутация: 0
По умолчанию

Никак не получается составить регулярное выражение. Есть строчка либо формата "ip1 ip2", либо просто "ip1". Нужно регулярками понять сколько введено адресов и записать каждое в переменную. Поможете? Вот есть небольшая наработка.

C++:





Код:
std
::
regex
rgx
(
"([:digit:]{1,3}\.[:digit:]{1,3}\.[:digit:]{1,3}\.[:digit:]{1,3}) ([:digit:]{1,3}\.[:digit:]{1,3}\.[:digit:]{1,3}\.[:digit:]{1,3})"
)
;
std
::
smatch match
;
if
(
std
::
regex_search
(
playerid
,
match
,
rgx
)
)
{
if
(
match
[
2
]
.
matched
)
{
SF
->
LogFile
(
"[EM]: Найдено 2 ip адреса"
,
m
)
;
findedip
=
match
[
1
]
;
sprintf
(
sInfo
.
ip1
,
"%s"
,
findedip
.
c_str
(
)
)
;
findedip
=
match
[
2
]
;
sprintf
(
sInfo
.
ip2
,
"%s"
,
findedip
.
c_str
(
)
)
;
SF
->
LogFile
(
"[EM]: %s %s"
,
sInfo
.
ip1
,
sInfo
.
ip2
)
;
}
else
if
(
match
[
1
]
.
matched
)
{
SF
->
LogFile
(
"[EM]: Найден 1 ip адрес."
)
;
findedip
=
match
[
1
]
;
sprintf
(
sInfo
.
ip1
,
"%s"
,
findedip
.
c_str
(
)
)
;
SF
->
LogFile
(
"[EM]: %s"
,
sInfo
.
ip1
)
;
}
else
{
SF
->
LogFile
(
"[EM]: Ошибка ввода."
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0xFF
,
0
,
0
)
,
"Проверьте правильность ввода!"
)
;
return
;
}
}
 
Ответить с цитированием

  #3  
Старый 11.07.2016, 04:40
itsLegend
Флудер
Регистрация: 23.03.2013
Сообщений: 2,696
С нами: 6915558

Репутация: 183


По умолчанию

Цитата:
Сообщение от QGate  

Никак не получается составить регулярное выражение. Есть строчка либо формата "ip1 ip2", либо просто "ip1". Нужно регулярками понять сколько введено адресов и записать каждое в переменную. Поможете? Вот есть небольшая наработка.
C++:





Код:
std
::
regex
rx
(
"(\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3})"
)
;
std
::
smatch rx_match
;
std
::
string str
=
"15.14.88.4 127.0.0.1"
;
byte count
=
0
;
// http://stackoverflow.com/questions/6136699/visual-studio-2010-c-tr1-regex-equivalent-of-perl-g-global-modifier
auto
str_it
=
str
.
cbegin
(
)
;
while
(
std
::
regex_search
(
str_it
,
str
.
cend
(
)
,
rx_match
,
rx
)
)
{
// SF->Log("%s", rx_match.str().c_str());
str_it
=
rx_match
[
0
]
.
second
;
count
++
;
}
printf
(
"Found: %d\n"
,
count
)
;


Если хочешь прям точно определить, IP ли это(максимальный диапазон ипа - 255.255.255.255), то можешь найти в интернете, либо помучиться самому. Вообще, составить регулярку для такой задачи будет тяжело, поэтому как-нибудь через строки проверяй.
 
Ответить с цитированием

  #4  
Старый 11.07.2016, 11:43
QGate
Познающий
Регистрация: 27.03.2016
Сообщений: 78
С нами: 5331145

Репутация: 0
По умолчанию

Цитата:
Сообщение от legend2360  

C++:





Код:
std
::
regex
rx
(
"(\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3})"
)
;
std
::
smatch rx_match
;
std
::
string str
=
"15.14.88.4 127.0.0.1"
;
byte count
=
0
;
// http://stackoverflow.com/questions/6136699/visual-studio-2010-c-tr1-regex-equivalent-of-perl-g-global-modifier
auto
str_it
=
str
.
cbegin
(
)
;
while
(
std
::
regex_search
(
str_it
,
str
.
cend
(
)
,
rx_match
,
rx
)
)
{
// SF->Log("%s", rx_match.str().c_str());
str_it
=
rx_match
[
0
]
.
second
;
count
++
;
}
printf
(
"Found: %d\n"
,
count
)
;


Если хочешь прям точно определить, IP ли это(максимальный диапазон ипа - 255.255.255.255), то можешь найти в интернете, либо помучиться самому. Вообще, составить регулярку для такой задачи будет тяжело, поэтому как-нибудь через строки проверяй.
Я нашел выход из этой ситуации. Я сделал просто 2 регулярки, одна ищет 2 ип адреса в стринге, вторая - один, соответственно если не находится 2 адреса, ищется 1.

C++:





Код:
std
::
regex
rgx1
(
"(\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}) (\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3})"
)
;
std
::
regex
rgx2
(
"(\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3})"
)
;
std
::
smatch match
;
if
(
std
::
regex_search
(
playerid
,
match
,
rgx1
)
)
{
SF
->
LogFile
(
"[EM]: Найдено 2 ip адреса"
,
m
)
;
findedip1
=
match
[
1
]
;
findedip2
=
match
[
2
]
;
SF
->
LogFile
(
"[EM]: %s %s"
,
findedip1
.
c_str
(
)
,
findedip2
.
c_str
(
)
)
;
return
;
}
else
if
(
std
::
regex_search
(
playerid
,
match
,
rgx2
)
)
{
SF
->
LogFile
(
"[EM]: Найден 1 ip адрес."
)
;
findedip1
=
match
[
1
]
;
SF
->
LogFile
(
"[EM]: %s"
,
findedip1
.
c_str
(
)
)
;
return
;
}
 
Ответить с цитированием

  #5  
Старый 11.07.2016, 14:11
Dark_Knight
Флудер
Регистрация: 18.03.2013
Сообщений: 4,080
С нами: 6921957

Репутация: 183


По умолчанию

Цитата:
Сообщение от QGate  

Я нашел выход из этой ситуации. Я сделал просто 2 регулярки, одна ищет 2 ип адреса в стринге, вторая - один, соответственно если не находится 2 адреса, ищется 1.
Твои регурялки плохие.

https://yadi.sk/i/7A9glYbFtBekc

Так же регекс сеарч нужно юзать в цикле, а не как условие.

http://pastebin.com/V0d8paZX
 
Ответить с цитированием

  #6  
Старый 11.07.2016, 14:36
SR_team
Флудер
Регистрация: 26.10.2013
Сообщений: 4,924
С нами: 6603505

Репутация: 183


По умолчанию

Цитата:
Сообщение от Dark_Knight  

регекс сеарч нужно юзать в цикле, а не как условие.
для поиска подстроки в строки с дальнейшим извлечением из нее параметров вполне катит в качестве условия
 
Ответить с цитированием

  #7  
Старый 11.07.2016, 17:59
QGate
Познающий
Регистрация: 27.03.2016
Сообщений: 78
С нами: 5331145

Репутация: 0
По умолчанию

Цитата:
Сообщение от Dark_Knight  

Твои регурялки плохие.
https://yadi.sk/i/7A9glYbFtBekc
Так же регекс сеарч нужно юзать в цикле, а не как условие.
http://pastebin.com/V0d8paZX
Ну плохи не плохие... по крайней мере оно работает А насчет цикла не знал.
 
Ответить с цитированием

  #8  
Старый 11.07.2016, 00:18
Yzkuz
Новичок
Регистрация: 07.06.2016
Сообщений: 14
С нами: 5227107

Репутация: 0
По умолчанию

Хочу начать учить C++, где взять уроки?
 
Ответить с цитированием

  #9  
Старый 11.07.2016, 09:22
Vadim.dll
Участник форума
Регистрация: 04.07.2015
Сообщений: 168
С нами: 5715860

Репутация: 78
По умолчанию

есть адрес памяти на RPC ClickTextDraw что то типа такого?
 
Ответить с цитированием

  #10  
Старый 11.07.2016, 12:11
itsLegend
Флудер
Регистрация: 23.03.2013
Сообщений: 2,696
С нами: 6915558

Репутация: 183


По умолчанию

Требую больше костылей!
 
Ответить с цитированием
Ответ





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.