
11.04.2023, 01:58
|
|
Флудер
Регистрация: 06.11.2017
Сообщений: 2,759
С нами:
4483143
Репутация:
183
|
|
[QUOTE="Digger Man"]
C++:
[CODE]
std
::
string str
=
"Hello world!"
;
for
(
size_t i
=
0
;
i
|
|
|

11.04.2023, 21:08
|
|
Флудер
Регистрация: 18.03.2013
Сообщений: 4,080
С нами:
6921957
Репутация:
183
|
|
Сообщение от Sadow
При виде пробела не идёт дальше.
Например текст равен "test probela", а выводит оно "test"
Чего блять?
|
|
|

09.04.2023, 06:19
|
|
Флудер
Регистрация: 06.11.2017
Сообщений: 2,759
С нами:
4483143
Репутация:
183
|
|
Сообщение от Sadow
Как перебирать строку по символам через цикл, используя std::string?
Способы отсюда не предлагайте. При виде символа цикл завершается
Че
|
|
|

11.04.2023, 01:38
|
|
Флудер
Регистрация: 19.09.2020
Сообщений: 2,405
С нами:
2973374
Репутация:
183
|
|
C++:
Код:
if
(
isKeyJustPressed
(
164
)
)
{
bool
dialogActive
=
SF
->
getSAMP
(
)
->
getDialog
(
)
->
iIsActive
;
sampAddChatMessage
(
"%d"
,
dialogActive
)
;
if
(
dialogActive
)
{
int
id
=
SF
->
getSAMP
(
)
->
getDialog
(
)
->
DialogID
;
SF
->
getSAMP
(
)
->
sendDialogResponse
(
3
,
1
,
0
,
""
)
;
sampAddChatMessage
(
"%d"
,
id
)
;
}
}
;
чет не работает sendDialogResponse
И еще, как юзать хуки?
|
|
|

13.04.2023, 18:07
|
|
Флудер
Регистрация: 19.09.2020
Сообщений: 2,405
С нами:
2973374
Репутация:
183
|
|
как сделать задержку в функции?
чтобы внутри while (1) {} было что то типа wait(500);
|
|
|

13.04.2023, 23:37
|
|
Познавший АНТИЧАТ
Регистрация: 14.10.2021
Сообщений: 1,412
С нами:
2411807
Репутация:
118
|
|
|
|
|

19.04.2023, 02:43
|
|
Участник форума
Регистрация: 25.11.2018
Сообщений: 263
С нами:
3929792
Репутация:
78
|
|
Использую в проекте "Use Multi-Byte Character Set". Заметил, что при работе с sqlite3_open ( www.sqlite.org) и наличии русских символов в пути к базе возвращает unable to open database file. Как решить проблему?
|
|
|

19.04.2023, 04:32
|
|
Познавший АНТИЧАТ
Регистрация: 14.07.2019
Сообщений: 1,097
С нами:
3596877
Репутация:
183
|
|
Сообщение от Leatington
Использую в проекте "Use Multi-Byte Character Set". Заметил, что при работе с sqlite3_open ( www.sqlite.org) и наличии русских символов в пути к базе возвращает unable to open database file. Как решить проблему?
Ты когда мульти байт используешь, у тебя некоторые буквы на кириллице представляются несколькими байтами,
sqlite3_open ожидает UTF-8, который использует однобайтовую кодировку для ASCII и многобайтовую для не ASCII, включая кириллицу , преобразуй путь к файлу в UTF-8 перед передачей в sqlite3_open, в винапи для этого есть MultiByteToWideChar и обратная WideCharToMultiByte
|
|
|

19.04.2023, 15:36
|
|
Участник форума
Регистрация: 25.11.2018
Сообщений: 263
С нами:
3929792
Репутация:
78
|
|
Сообщение от Digger Man
Ты когда мульти байт используешь, у тебя некоторые буквы на кириллице представляются несколькими байтами,
sqlite3_open ожидает UTF-8, который использует однобайтовую кодировку для ASCII и многобайтовую для не ASCII, включая кириллицу , преобразуй путь к файлу в UTF-8 перед передачей в sqlite3_open, в винапи для этого есть MultiByteToWideChar и обратная WideCharToMultiByte
(обновлено), получилось с помощью следующей функции, спасибо.
C++:
Код:
std
::
string
CP1251_to_UTF8
(
const
char
*
str
)
{
std
::
string res
;
int
result_u
,
result_c
;
result_u
=
MultiByteToWideChar
(
1251
,
0
,
str
,
-
1
,
0
,
0
)
;
if
(
!
result_u
)
{
return
0
;
}
wchar_t
*
ures
=
new
wchar_t
[
result_u
]
;
if
(
!
MultiByteToWideChar
(
1251
,
0
,
str
,
-
1
,
ures
,
result_u
)
)
{
delete
[
]
ures
;
return
0
;
}
result_c
=
WideCharToMultiByte
(
65001
,
0
,
ures
,
-
1
,
0
,
0
,
0
,
0
)
;
if
(
!
result_c
)
{
delete
[
]
ures
;
return
0
;
}
char
*
cres
=
new
char
[
result_c
]
;
if
(
!
WideCharToMultiByte
(
65001
,
0
,
ures
,
-
1
,
cres
,
result_c
,
0
,
0
)
)
{
delete
[
]
cres
;
return
0
;
}
delete
[
]
ures
;
res
.
append
(
cres
)
;
delete
[
]
cres
;
return
res
;
}
Код:
[CODE]
std::string res = CP1251_to_UTF8(path.c_str());
sqlite3* users;
if (sqlite3_open(res.c_str(), &users))
{
std::cout
|
|
|

19.04.2023, 18:35
|
|
Познавший АНТИЧАТ
Регистрация: 01.04.2018
Сообщений: 1,710
С нами:
4272230
Репутация:
183
|
|
[QUOTE="Leatington"]
(обновлено), получилось с помощью следующей функции, спасибо.
C++:
Код:
std
::
string
CP1251_to_UTF8
(
const
char
*
str
)
{
std
::
string res
;
int
result_u
,
result_c
;
result_u
=
MultiByteToWideChar
(
1251
,
0
,
str
,
-
1
,
0
,
0
)
;
if
(
!
result_u
)
{
return
0
;
}
wchar_t
*
ures
=
new
wchar_t
[
result_u
]
;
if
(
!
MultiByteToWideChar
(
1251
,
0
,
str
,
-
1
,
ures
,
result_u
)
)
{
delete
[
]
ures
;
return
0
;
}
result_c
=
WideCharToMultiByte
(
65001
,
0
,
ures
,
-
1
,
0
,
0
,
0
,
0
)
;
if
(
!
result_c
)
{
delete
[
]
ures
;
return
0
;
}
char
*
cres
=
new
char
[
result_c
]
;
if
(
!
WideCharToMultiByte
(
65001
,
0
,
ures
,
-
1
,
cres
,
result_c
,
0
,
0
)
)
{
delete
[
]
cres
;
return
0
;
}
delete
[
]
ures
;
res
.
append
(
cres
)
;
delete
[
]
cres
;
return
res
;
}
Код:
[CODE]
std::string res = CP1251_to_UTF8(path.c_str());
sqlite3* users;
if (sqlite3_open(res.c_str(), &users))
{
std::cout
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|