Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/88: Рейтинг темы: голосов - 88, средняя оценка - 5.00
2 / 2 / 0
Регистрация: 11.10.2010
Сообщений: 35

Методы обработки UnicodeString

28.11.2010, 23:28. Показов 16964. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Установил RAD Studio 2010. Как всем известно некоторое нововведение UnicodeString, это плюс, но.. Не посоветовали бы вы литературу, желательно на русском, как работать с этой строкой, какие есть функции/методы её обработки? Вот, к примеру char* я обрабатывал http://ru.wikipedia.org/wiki/String.h так, а какие есть функции, обрабатывающие UnicodeString? Чтобы не приходилось извращаться конвентированем в char, проделыванием операций с char, а затем снова возвращать в UnicodeString?

Очень буду благодарен за ссылку на статью на русском языке, спасибо
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
28.11.2010, 23:28
Ответы с готовыми решениями:

Объединить методы обработки изображения в класс
Добрый день, помогите пожалуйста создать класс для следующих методов Инверсия Graphics::TBitmap *Bitmap2 = new Graphics::TBitmap(); ...

Методы обработки массивов
Напишите программу, которая вводит с клавиатуры 10 реальных чисел, и организовывает их хранение в массиве. После этого массив...

Списки и методы обработки списков
Здравствуйте. Вот задача:Дан список L, элементы которого являются действительными числами. Переставить все отрицательные элементы в конец...

5
Эксперт С++
 Аватар для MikeSoft
3957 / 1812 / 184
Регистрация: 21.11.2009
Сообщений: 2,540
29.11.2010, 01:33
iFree, я бы не сказал, что это нововведение...
В 6-ой версии C++Builder'a был тип AnsiString, или std::string в стандартной библиотеке шаблонов (STL).
Собственно, чему учат данные "типы"? Тому, что это уже не "типы данных", а классы, с вложенными методами.
Сразу советую почитать вот это небольшое объяснение (и последующие за этим сообщения) и перестать использованию UnicodeString, вызывая просто String: Псевдонимы String, UnicodeString, AnsiString.

О методах вы можете почитать в родном Help'е. Он на английском, но много усилий не нужно, чтобы понять суть по названию.

Объявите объект и вызовите список доступных методов (появится после символа "."):
C++
1
2
String Text;
Text.  // после точки среда предложит список методов
Если будут вопросы по каким-либо отдельным методам - обращайтесь, постараемся помочь.
0
2 / 2 / 0
Регистрация: 11.10.2010
Сообщений: 35
29.11.2010, 11:42  [ТС]
Спасибо, теперь разобрался. Я просто привык пользоваться функциями из string.h, теперь я просто использую метод к примеру:

C++
1
2
3
char *ch=new char[Edit1->GetTextLen()];
 
ch=Edit1->Text.t_str();
Далее просто выполняю нужные себе преобразования, при чем удобно то, что UnicodeString = Char. То есть:

C++
1
2
char ch="What's up?";
Label1->Caption=ch;
Спасибо, помогло) Разжевал для случая, вдруг здесь еще будет подобный мне человек
0
Эксперт С++
 Аватар для MikeSoft
3957 / 1812 / 184
Регистрация: 21.11.2009
Сообщений: 2,540
29.11.2010, 14:54
iFree, неверно делаете.

1. Забываете про нуль-терминатор для массива символов:
C++
1
char *str = new char [Edit1->Text.Length() + 1];
2. Методы c_str(), t_str(), w_str() возвращают указатель на "временный" массив, поэтому его нужно сразу скопировать в выделенный участок памяти:
C++
1
strcpy(srt,Edit1->Text.t_str());
3. Тип данных char занимает в памяти один байт, поэтому записать туда можно один символ из ASCII таблицы. Для записи текста необходимо делать так:
C++
1
2
char *str1 = "Hello World"; // первый вариант
char str2[] = "Hello World"; // второй вариант
1
2 / 2 / 0
Регистрация: 11.10.2010
Сообщений: 35
29.11.2010, 16:18  [ТС]
Точно, нуль символ.. это он же равен "\0" ? Преподша постоянно меня материла, что я его забываю)
Хотя в отладке, к примеру, когда я watch'ил переменные, то даже не смотря на то, что я создавая динамическую переменную char без +1 все равно в конец вписывался нуль символ. Или может я немного не правильно понимаю?

Может именно из-за этого были проблемы, когда я наживо из динамической переменной char из начала убирал некоторые символы со сдвигом, то есть к примеру: "Hello world"... >>> "llo world%$%", и в конце появлялись то смайлики, то прочее юникодовское творение из-за того, что я создавая динамическую переменную установленного размера без +1, то бишь под нуль символ?
0
Эксперт С++
 Аватар для MikeSoft
3957 / 1812 / 184
Регистрация: 21.11.2009
Сообщений: 2,540
29.11.2010, 17:02
Цитата Сообщение от iFree Посмотреть сообщение
в конец вписывался нуль символ. Или может я немного не правильно понимаю?
А вот вы представьте себе картину: у вас в курточке карман, в который вмещается 5 яблок, а вы туда пытаетесь положить 6 яблок. Последнее яблоко вроде и лежит, но выпадет, если вы будете неаккуратно идти/бежать. Вот так и в программировании. Память выделили на N элементов, а пытаетесь положить N+1. Происходит доступ к памяти, которая не "закреплена" за приложением. Вроде бы и работает, но где гарантии что вы не переписали важные данные?
Это "мина замедленного действия".
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
29.11.2010, 17:02
Помогаю со студенческими работами здесь

PHP 7 Не работают методы обработки строк
Привет всем! Ребята пожалуйста,подскажите что не так.Вот я использую методы для обработки строк но они почему то не работают. ...

Методы обработки строк: метод CompareTo
Суть: метод CompareTo возвращает 0, если строки равны, положительное значение, если вызывающая строка больше и отрицательное, если меньше. ...

Методы обработки переданных данных с одной страницы на другую
Столкнулся с такой рутинной работой когда у меня на страницу с анкетой для пользователя есть 25 текстовых полей, которые он заполняет и...

Создайте меню и методы (функции) для обработки текста
Кому не сложно помогите написать. Пользователь вводит предложение Создайте меню и методы (функции) для обработки текста ...

Методы и алгоритмы обработки и анализа больших данных в крупномасштабных системах
Добрый вечер люди! Всем добра! У меня такой вопрос Вот моя тема дипломной работы :Методы и алгоритмы обработки и анализа больших...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru