IPB
ЛогинПароль:

> Внимание!

1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным. В описании темы указываем язык!!!

 
 Ответить  Открыть новую тему 
> Замена кода спец. символа на сам символ.
Krjuger
сообщение 18.04.2012 15:05
Сообщение #1


Профи
****

Группа: Пользователи
Сообщений: 652
Пол: Мужской
Реальное имя: Алексей

Репутация: -  20  +


У меня есть например вот такая строка.

string input = "(¬X^¬Y^Z)v(¬X^Y^¬Z)v(¬X^Y^Z)v(X^¬Y^Z)v(X^Y^¬Z)";

Я вывожу ее в textBox на форме.Как сделать в С# ,чтобы "¬" отображался в виде значка отрицания?

Блин, здесь они автоматически заменяются на нужный мне символ. В общем в строке вместо символов написано "& # 172;"

Сообщение отредактировано: Krjuger - 18.04.2012 15:08
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
TarasBer
сообщение 18.04.2012 16:54
Сообщение #2


Злостный любитель
*****

Группа: Пользователи
Сообщений: 1 755
Пол: Мужской

Репутация: -  62  +


String.Replace


--------------------
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Krjuger
сообщение 18.04.2012 17:55
Сообщение #3


Профи
****

Группа: Пользователи
Сообщений: 652
Пол: Мужской
Реальное имя: Алексей

Репутация: -  20  +


Видать я не совсем правильно выразиблся.Ладно попробуем так.
Если я счас ввиду "& # 172", но без пробелов и нажму отправить,но вместо этого я увижу символ ¬. Можно ли как нибудь сделать так,чтобы строка, введенная в коде программы при помощи вот этих кодов спецсимволов в textBox'e обображалась уже самими символами.Без непосредственных манипуляций с Replace.Там порядка 8 спец символов различных и для каждого делать Replace как то неправильно.Ведь на форуме они автоматически заменяются,неужели в текст боксах такого нет?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
IUnknown
сообщение 18.04.2012 18:56
Сообщение #4


a.k.a. volvo877
*****

Группа: Пользователи
Сообщений: 1 013
Пол: Мужской

Репутация: -  627  +


Форумы - это форумы, а компоненты, не предназначенные для HTML-рендеринга (вот в Qt компоненты предназначены для него, ты можешь просто написать в QLabel строку "<b><i>test</i></b>" и получишь выделенный и наклоненный текст, в Шарпе - нет).

Если б было не 172, а AC (т.е., в 16-ричном формате), то экранирование Юникодных символов:
"(\u00ACX^\u00ACY^Z)v(\u00ACX^Y^\u00ACZ)v(\u00ACX^Y^Z)v(X^\u00ACY^Z)v(X^Y^\u00ACZ)"
решает проблему. Десятичные коды записывать нельзя, к сожалению...

Сообщение отредактировано: IUnknown - 18.04.2012 19:00
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Krjuger
сообщение 18.04.2012 19:36
Сообщение #5


Профи
****

Группа: Пользователи
Сообщений: 652
Пол: Мужской
Реальное имя: Алексей

Репутация: -  20  +


Пичально.Ладно,будем думать.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
IUnknown
сообщение 19.04.2012 11:53
Сообщение #6


a.k.a. volvo877
*****

Группа: Пользователи
Сообщений: 1 013
Пол: Мужской

Репутация: -  627  +


Можно Replace-ом заменить сразу все подобные коды на символы:

	textBox1.Text = 
Regex.Replace(
s, @"&#([0-9]{3});",
delegate(Match match)
{ return Char.ConvertFromUtf32(Convert.ToInt32(match.Value.Substring(2, 3))); }
);
Вот что получается:
Прикрепленное изображение
(вставил картинку, ибо форум опять сам всё заменит и будет не то, что нужно). В .NET 4 можно заменить делегат на "=>", насколько мне известно.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
garri-potter
сообщение 23.04.2013 9:55
Сообщение #7





Группа: Пользователи
Сообщений: 1
Пол: Мужской
Реальное имя: harry potter

Репутация: -  0  +


да регулярки рулят good.gif


--------------------
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 19.03.2024 13:52
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"