|
17 / 5 / 0
Регистрация: 16.04.2016
Сообщений: 344
|
||||||
Как передать текст из поля ввода в массив символов?24.01.2023, 04:07. Показов 4868. Ответов 25
Метки нет (Все метки)
Всех приветствую. Когда я передаю строку так:
Добавлено через 1 час 51 минуту Неужели все знающие visual c++ вымерли,или вымерли только знающие c++ на cyberforum.ru? Добавлено через 5 часов 41 минуту Подскажите пожалуйста,хотя бы,как правильно зарепортить этот баг в microsoft,т.к раньше я не репортил багов в microsoft.
0
|
||||||
| 24.01.2023, 04:07 | |
|
Ответы с готовыми решениями:
25
Как передать переменную типа char из поля ввода в лист? Как выводить и проверять текст из поля ввода? |
|
фрилансер
6466 / 5688 / 1131
Регистрация: 11.10.2019
Сообщений: 15,145
|
||||||
| 24.01.2023, 07:03 | ||||||
|
КАВ, нет там никаких багов. Получаешь строку
далее конвертируй в нужную кодировку при помощи MultiByteToWideChar WideCharToMultiByte
0
|
||||||
|
17 / 5 / 0
Регистрация: 16.04.2016
Сообщений: 344
|
||||||
| 24.01.2023, 14:52 [ТС] | ||||||
|
Огромное Вам спасибо. А почему не работает макрос CT2A,который вроде работает для обычной строки CString. Как узнать,что у меня используется - CStringA или CStringW? Какой вариант предпочтительнее?
Я делаю так:
0
|
||||||
|
фрилансер
6466 / 5688 / 1131
Регистрация: 11.10.2019
Сообщений: 15,145
|
||||
| 24.01.2023, 14:55 | ||||
Configuration properties - Advanced - Character Set - или прыгнуть к определению идентификатора CString
0
|
||||
|
17 / 5 / 0
Регистрация: 16.04.2016
Сообщений: 344
|
||||||
| 24.01.2023, 19:02 [ТС] | ||||||
|
У меня в проекте вроде используется юникод. CT2A и ct2W это макросы,которые есть,как я понимаю,в mfc. Вот я и хочу зарепортить баг,что они не работают как следует.
Добавлено через 3 часа 44 минуты Оказывается мне нужна функция,переводящая CString в char* utf8. В проекте (изначально это был не мой проект) Есть такая функция,правда во-первых она возвращает std::string,а мне нужен char*,а во-вторых я не уверен,что это наилучший вариант,т.к в нете видел прилично функций,переводящих из CString в char utf8 . А какая наиболее правильная - Вопрос.
Обидно,что mfc не предоставляет готовую функцию для этих целей.
0
|
||||||
|
фрилансер
6466 / 5688 / 1131
Регистрация: 11.10.2019
Сообщений: 15,145
|
|
| 24.01.2023, 19:54 | |
|
0
|
|
|
17 / 5 / 0
Регистрация: 16.04.2016
Сообщений: 344
|
|
| 24.01.2023, 21:24 [ТС] | |
|
Я понял. просто для этого нужно объявлять отдельную переменную cString,а я видел в интернете функции,которые сразу конвертируют строку в utf-8 и возвращают массив символов,правда какие из них более правильные - вот в чём вопрос. Если я не найду ответ,придётся использовать то,что до меня писали в этом проекте (см код выше). Также как потом правильно прибавлять к ней что-либо,т.е чтобы,к примеру,написать "@metaparser %s",command где command - Массив символов,переконвертированный в utf-8.
0
|
|
|
фрилансер
6466 / 5688 / 1131
Регистрация: 11.10.2019
Сообщений: 15,145
|
|
| 24.01.2023, 21:50 | |
|
КАВ, std::string - это и есть массив символов, только в удобной обёртке.
Добавлено через 1 минуту если нужно работать с utf8, то внутри программы всё удобно будет держать в std::string. CString вообще не особо нужен, он лишь как промежуточное средство при отображении на экран или считывании из окна ввода
0
|
|
|
17 / 5 / 0
Регистрация: 16.04.2016
Сообщений: 344
|
|
| 24.01.2023, 22:28 [ТС] | |
|
А почему в окне или в полях ввода не используется wstring,
Добавлено через 5 минут И как всё-таки правильно переводить из cstring в массив символов utf-8 с возможностью добавлять строки,используя print,snprintf и т.д?
0
|
|
|
фрилансер
6466 / 5688 / 1131
Регистрация: 11.10.2019
Сообщений: 15,145
|
|||
| 24.01.2023, 22:56 | |||
Но всегда можно юзать винапи напрямую и пользоваться std::string/std::wstring
0
|
|||
|
17 / 5 / 0
Регистрация: 16.04.2016
Сообщений: 344
|
|
| 25.01.2023, 00:14 [ТС] | |
|
Хорошо. А как сконвертировать CString в stl контейнер. Как потом сконвертировать его в utf-8 и можно ли изменить этот массив,т.е не пострадает ли кодировка,если я буду использовать что-то типа "@metaparser %s"",т.е модифицировать этот символьный массив и можно ли как-то изменить существующий массив,или лучше распечатать модифицированный массив в другой массив (snprintf(cmd, sizeof(cmd), "@metaparser "%s"",utf8Array)).
0
|
|
|
фрилансер
6466 / 5688 / 1131
Регистрация: 11.10.2019
Сообщений: 15,145
|
|
| 25.01.2023, 00:25 | |
|
КАВ, из CStringW можно сразу конвертировать в std::string, содержащий utf8 (пост №5 - чуток переделать код)
форматирование нужно будет делать методами класса std::ostringstream . Всё добавляемое в строку делать сразу в utf8
0
|
|
|
17 / 5 / 0
Регистрация: 16.04.2016
Сообщений: 344
|
|
| 25.01.2023, 00:37 [ТС] | |
|
А как изменить мой код,чтобы сделать это напрямую? Просто я толком не знаю c++ и пишу,в основном,на java/python. А тут нужно доработать для себя и для других один c++ проект. Не могли бы Вы пожалуйста написать пример,как это правильно делать в 2023 году,т.к сейчас многое поменялось чем,к примеру,10-12 лет назад.
0
|
|
|
фрилансер
6466 / 5688 / 1131
Регистрация: 11.10.2019
Сообщений: 15,145
|
||||||
| 25.01.2023, 07:20 | ||||||
|
КАВ, например
1
|
||||||
|
17 / 5 / 0
Регистрация: 16.04.2016
Сообщений: 344
|
|
| 25.01.2023, 15:30 [ТС] | |
|
Огромное спасибо. Теперь вопрос как правильно это использовать,я имею ввиду после того,как я выполню форматирование и другие вещи,не нужно ли мне как-то освободить эту переменную?
0
|
|
|
фрилансер
6466 / 5688 / 1131
Регистрация: 11.10.2019
Сообщений: 15,145
|
|
| 25.01.2023, 15:38 | |
|
КАВ, это класс, он сам умеет освобождать свои ресурсы
0
|
|
|
17 / 5 / 0
Регистрация: 16.04.2016
Сообщений: 344
|
|
| 25.01.2023, 16:06 [ТС] | |
|
А разве не надо будет вызвать диструктор,или что-то типа delete string. Кстати интересно,а если бы мы работали в c,а не в c++,надо было бы освобождать string,или структура тоже сама освободила бы свои данные. Если Вам нетрудно,не могли бы Вы пожалуйста написать метод и обратно конвертирующий char* в строку utf-8. Просто у Вас он,на мой взгляд,будет лучше чем тот,что был реализован в проекте. Кстати функция resize пересчитывает размер памяти,который нужно выделить для переменной?
0
|
|
|
фрилансер
6466 / 5688 / 1131
Регистрация: 11.10.2019
Сообщений: 15,145
|
||||
| 25.01.2023, 16:11 | ||||
|
вот если объект создаётся при помощи new, то нужно будет вызвать delete метод resize устанавливает размер внутреннего буфера
0
|
||||
|
17 / 5 / 0
Регистрация: 16.04.2016
Сообщений: 344
|
|
| 25.01.2023, 19:08 [ТС] | |
|
Насчёт c понятно. Просто я думал,что структура сама всё освободит. А насчёт кодировки неуверен,но вроде массив в utf-8.
Добавлено через 1 час 51 минуту По сути мне нужна функция,которая делает обратное тому,что Вы написали.
0
|
|
|
фрилансер
6466 / 5688 / 1131
Регистрация: 11.10.2019
Сообщений: 15,145
|
||||||
| 25.01.2023, 19:45 | ||||||
|
КАВ, что-то навроде такого
0
|
||||||
| 25.01.2023, 19:45 | |
|
Помогаю со студенческими работами здесь
20
Как вывести текст из поля ввода (edit) в f1book?
Передать данные из поля ввода в программу Текст из поля ввода в список Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git
main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели
8ATzM_2aurI
|
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2.
Задача: запретить редактирование документа, если он открыт у другого пользователя.
/ / . . .
|
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои.
А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
|
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20%
kYBz3eJf3jQ
|
|
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
|
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
|
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора
Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2.
Задача: уведомлять пользователя, если. . .
|
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
|