Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.85/26: Рейтинг темы: голосов - 26, средняя оценка - 4.85
158 / 144 / 14
Регистрация: 03.02.2012
Сообщений: 745
Записей в блоге: 1
1

Как в UnicodeString быстро заменить символы на другие символы ?

12.10.2012, 12:32. Просмотров 5356. Ответов 11
Метки нет (Все метки)


Собственно, в названии темы вопрос.

Например :

String Data = "12.10.2012";

Как быстро, без конвертации в char*, заменить, например, '.' на '_' ?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.10.2012, 12:32
Ответы с готовыми решениями:

Как заменить управляющие символы в строке?
Всем здравствуйте. String s = "asdfasdfa123sdf"; s = StringReplace(s, "a", "\\",...

Разрешить вводить в поле запись в виде даты, другие символы не разрешать
Есть поле Edit. Нужно сделать так, чтобы в нем можно было вводить запись в виде даты (например,...

Заменить символы в переменной типа String
Всем привет) Ребят, прокрнсультируйте пожалуйста(т.к. с Билдером пока что на "Вы"): есть строка ...

Заменить буквы и символы текста на числа
Помогите заменить буквы и символы текста на числа. К примеру: Hello world! на 12365237841

__________________
Помогаю в написании курсовых работ и дипломов здесь.
Записывайтесь на профессиональные курсы C++ разработчиков
11
Практикантроп
4676 / 2597 / 495
Регистрация: 23.09.2011
Сообщений: 5,573
12.10.2012, 12:50 2
Может так?...
C++
1
2
3
4
5
  WideString LL = L"17.10.2011";
  wchar_t smb = '_';
 
  LL[3] = smb;
  Edit2->Text = LL;
П.С. < LL[3] = (wchar_t)'_'; LL[6] = (wchar_t)'_'; >
1
LK
Заблокирован
12.10.2012, 12:51 3
StringReplace()
1
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
30871 / 20192 / 7875
Регистрация: 22.10.2011
Сообщений: 35,053
Записей в блоге: 6
12.10.2012, 12:52 4
"Быстро" - в смысле, наименьшим количеством кода? StringReplace в помощь, заменяется в одну строку.
1
158 / 144 / 14
Регистрация: 03.02.2012
Сообщений: 745
Записей в блоге: 1
12.10.2012, 14:05  [ТС] 5
Спасибо

Добавлено через 1 час 5 минут
C++
1
2
3
4
5
6
String SaveName,TempDate;
TReplaceFlags Flags1;
Flags1.Contains(rfReplaceAll);
Flags1.Contains(rfIgnoreCase);
TempDate = DateToStr(Today());
SaveName = StringReplace(TempDate,(UnicodeString)".",(UnicodeString)"_",Flags1);
Почему-то заменяет только 1-й символ '.' на выходе имею "12_10.2012"

Что не так делаю ?
0
LK
Заблокирован
12.10.2012, 14:29 6
C++
1
UnicodeString s = StringReplace(s, "old", "new", TReplaceFlags() << rfReplaceAll << rfIgnoreCase);
1
158 / 144 / 14
Регистрация: 03.02.2012
Сообщений: 745
Записей в блоге: 1
12.10.2012, 14:44  [ТС] 7
А мои потуги с
C++
1
Flags1.Contains(rfReplaceAll);
- ни одно и то же с вашим
C++
1
TReplaceFlags() << rfReplaceAll
в теле с вызовом StringReplace?

C++
1
SaveName = StringReplace(TempDate,(UnicodeString)".",(UnicodeString)"_",Flags1 << rfReplaceAll);
работает
0
LK
Заблокирован
12.10.2012, 15:26 8
Вы хотели быстро, вам предложили вариант "одной строкой", вы начали изобретать велосипед, в общем, все как обычно.
0
Эксперт С++
8354 / 6092 / 610
Регистрация: 10.12.2010
Сообщений: 28,392
Записей в блоге: 29
14.10.2012, 00:10 9
Contains -только проверяет установлен ли флаг, а << его устанавливает

Добавлено через 3 минуты
C++
1
String Data = "12.10.2012";
Кстате зачем вам такой изврат когда есть класс TDateTime в котором можно устанавливать формат при переводе в String ?
1
158 / 144 / 14
Регистрация: 03.02.2012
Сообщений: 745
Записей в блоге: 1
14.10.2012, 00:41  [ТС] 10
Цитата Сообщение от Avazart Посмотреть сообщение
Contains -только проверяет установлен ли флаг, а << его устанавливает

Добавлено через 3 минуты
C++
1
String Data = "12.10.2012";
Кстате зачем вам такой изврат когда есть класс TDateTime в котором можно устанавливать формат при переводе в String ?
Видимо, я не знаю что можно управлять форматом вывода текста даты. Можете привести тут пример ? Впрочем, и на этом спасибо. Я привёл пример с датой потому что он первым пришёл в голову как пример. На самом деле, часто приходится работать со строками уже в новом формате Unicode или Wide и нужно по возможности уходить от *char чтобы красивее и быстрее был код. Здорово, что на этом форуме люди доброжелательно помогают быстрее изучить функции и методы с которыми не знаком. Спасибо.
0
Эксперт С++
8354 / 6092 / 610
Регистрация: 10.12.2010
Сообщений: 28,392
Записей в блоге: 29
14.10.2012, 00:43 11
Здорово, что на этом форуме люди доброжелательно помогают быстрее изучить функции и методы с которыми не знаком
Для этого есть справка в Билдере F1, ну и книги Архангельского.

Для форматирования строк есть Format() и др ф-ции ...

Насчет юникода - так ничего не изменилось те же методы что и с Ansi

Да и всегда можно воспользоваться более универсальными возможностями типа boost/regex для той же замены.
0
LK
Заблокирован
14.10.2012, 00:48 12
FormatDateTime
Работа с датой
VCL: скрытые сокровища Sysutils
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.10.2012, 00:48

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь или здесь.

Как заменить одинаковые символы на другие?
Например можно как нибудь выделить все точки в таблице и заменить их на запятые?

Как во введённой строке заменить одни символы на другие?
Помогите пожалуйста разобраться со строками в shell, вот к примеру мы вводим какое то предложение...

Как удалить из url строки ' " ,* | >,<,^% ' ,но -нужен, вообще как заменить на другие символы
как удалить из url строки звездчку, двойные кавички, знаки '|' '&gt;','&lt;','^','%' вообще как...

Заменить часть строки на другие символы
У нас есть массив строк, мы считываем с клавиатуры строку пользователя и проверяем, если в ней есть...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.