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

  #1  
Старый 11.04.2023, 01:58
kin4stat
Флудер
Регистрация: 06.11.2017
Сообщений: 2,759
С нами: 4483143

Репутация: 183


По умолчанию

[QUOTE="Digger Man"]

C++:





[CODE]
std
::
string str
=
"Hello world!"
;
for
(
size_t i
=
0
;
i
 
Ответить с цитированием

  #2  
Старый 11.04.2023, 21:08
Dark_Knight
Флудер
Регистрация: 18.03.2013
Сообщений: 4,080
С нами: 6921957

Репутация: 183


По умолчанию

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

При виде пробела не идёт дальше.
Например текст равен "test probela", а выводит оно "test"
Чего блять?

Цитата:
Сообщение от Спойлер  




 
Ответить с цитированием

  #3  
Старый 09.04.2023, 06:19
kin4stat
Флудер
Регистрация: 06.11.2017
Сообщений: 2,759
С нами: 4483143

Репутация: 183


По умолчанию

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

Как перебирать строку по символам через цикл, используя std::string?

Способы отсюда не предлагайте. При виде символа цикл завершается
Че
 
Ответить с цитированием

  #4  
Старый 11.04.2023, 01:38
VRush
Флудер
Регистрация: 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

И еще, как юзать хуки?
 
Ответить с цитированием

  #5  
Старый 13.04.2023, 18:07
VRush
Флудер
Регистрация: 19.09.2020
Сообщений: 2,405
С нами: 2973374

Репутация: 183


По умолчанию

как сделать задержку в функции?

чтобы внутри while (1) {} было что то типа wait(500);
 
Ответить с цитированием

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

Репутация: 118


По умолчанию

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

как сделать задержку в функции?
чтобы внутри while (1) {} было что то типа wait(500);
1 способ: #include

Sleep(500)

2 способ:

3 способ: https://www.blast.hk/threads/98923/post-824853
 
Ответить с цитированием

  #7  
Старый 19.04.2023, 02:43
Leatington
Участник форума
Регистрация: 25.11.2018
Сообщений: 263
С нами: 3929792

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

Использую в проекте "Use Multi-Byte Character Set". Заметил, что при работе с sqlite3_open (www.sqlite.org) и наличии русских символов в пути к базе возвращает unable to open database file. Как решить проблему?
 
Ответить с цитированием

  #8  
Старый 19.04.2023, 04:32
Digger Man52
Познавший АНТИЧАТ
Регистрация: 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
 
Ответить с цитированием

  #9  
Старый 19.04.2023, 15:36
Leatington
Участник форума
Регистрация: 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

 
Ответить с цитированием

  #10  
Старый 19.04.2023, 18:35
Musaigen
Познавший АНТИЧАТ
Регистрация: 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)
 


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




ANTICHAT ™ © 2001- Antichat Kft.