Задать вопрос
GoldenEagle88
@GoldenEagle88

Как работать с спец символами Delphi?

♥☺☻♦♣♠•◘○ Возможно ли как то кроме замены удалить все спец символы из строки?
  • Вопрос задан
  • 1696 просмотров
Подписаться 2 Оценить Комментировать
Ответ пользователя Mercury13 К ответам на вопрос (4)
@Mercury13
Программист на «си с крестами» и не только
Думаю, ваша задача более высокого уровня такова. Пользователи разрисовывают свои имена всякими там картинками, задача — убрать их.

Немного непонятно, с какой версией Delphi вы работаете, но, предположим, с 2010+.
Там string эквивалентно UnicodeString, 16-битной строке неограниченной длины, управляемой подсчётом ссылок средствами Delphi.
Юникод очень велик и будет расширяться, в идеале там может быть 1,15 млн. символов. Из них 120 тыс. уже занято.
Поэтому лучшим решением будет делать не чёрный список символов, а белый.

Качаем базу символов Unicode (есть где-то на unicode.org).
Делаем из неё фильтр по каким-нибудь признакам: например, буква/цифра/знак/комбинирующий/пробел и направление письма — либо слева направо, либо адаптирующееся.
Также для простоты исключаем символы с кодом 65536+ (с дополнительных плоскостей, они кодируются двумя WideChar).
Вот этим белым списком и пользуемся. Проходимся по строке и убираем все лишние.
Ответ написан