159 / 145 / 14
Регистрация: 03.02.2012
Сообщений: 772
Записей в блоге: 1
1

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

12.10.2012, 12:32. Показов 6120. Ответов 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

11
Практикантроп
4742 / 2648 / 512
Регистрация: 23.09.2011
Сообщений: 5,680
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
StringReplac­e()
1
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
31884 / 20782 / 8066
Регистрация: 22.10.2011
Сообщений: 36,000
Записей в блоге: 7
12.10.2012, 12:52 4
"Быстро" - в смысле, наименьшим количеством кода? StringReplace в помощь, заменяется в одну строку.
1
159 / 145 / 14
Регистрация: 03.02.2012
Сообщений: 772
Записей в блоге: 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.2­012"

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

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

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

Добавлено через 3 минуты
C++
1
String Data = "12.10.2012";
Кстате зачем вам такой изврат когда есть класс TDateTime в котором можно устанавливат­ь формат при переводе в String ?
Видимо, я не знаю что можно управлять форматом вывода текста даты. Можете привести тут пример ? Впрочем, и на этом спасибо. Я привёл пример с датой потому что он первым пришёл в голову как пример. На самом деле, часто приходится работать со строками уже в новом формате Unicode или Wide и нужно по возможности уходить от *char чтобы красивее и быстрее был код. Здорово, что на этом форуме люди доброжелател­ьно помогают быстрее изучить функции и методы с которыми не знаком. Спасибо.
0
Эксперт С++
8379 / 6140 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
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
Copyright ©2000 - 2022, CyberForum.ru