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

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

28.11.2010, 23:28. Показов 16934. Ответов 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
3956 / 1811 / 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
3956 / 1811 / 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
3956 / 1811 / 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
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути Сочетание глобально распределённой вычислительной мощности и инновационных. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru