Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> RichTextBox и работа с текстом, Как получить информацию о тексте? 
:(
    Опции темы
NosfBlazE
Дата 30.7.2011, 22:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


炎丸 =Ferro ignique!=
*


Профиль
Группа: Участник
Сообщений: 51
Регистрация: 16.11.2008
Где: Russia

Репутация: нет
Всего: нет



Здравствуйте.
В обычном оконном приложении есть форма с RichTextBox, в котором введен какой-то форматированный текст, раскрашенный разными цветами. Можно ли как-нибудь обратиться к этому объекту и узнать каким именно цветом и шрифтом написана в нем конкретная буква? Что-то вроде RichTextBox.Rtf[i].<Получить стиль> .
Надеюсь на вашу помощь. smile

P.S. Зачем мне это надо? Хочу перевести весь текст в html представление с сохранением исходного форматирования. То есть расставить соответствующие теги и стили.
PM MAIL ICQ Skype Jabber   Вверх
AlexNagits
  Дата 30.7.2011, 22:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 14.7.2011

Репутация: нет
Всего: нет



Могу предложить простой вариант. Но предупреждаю сразу, что он скорее всего будет работать медленно!

Поочередно выделяя каждый символ в richTextBox, мы можем читать richTextBox.SelectionColor, SelectionFont и другие свойства.. Так мы сможем точно узнать форматирование каждого символа. Но при больших текстах, наверное, будет работать очень медленно.
Код

            for (var i = 0; i < richTextBox.Text.Length; i++)
            {
                richTextBox.Select(i, 1);
                //richTextBox.SelectionColor;
                //richTextBox.SelectionFont
                //richTextBox.SelectionBackColor
                // и т.д.
            }


Можно ускорить немного, ценой точности парсинга форматирования. Предварительно разбить текст на отдельные слова по символу ПРОБЕЛ richTextBox.Text.Split(" "). И в цикле считывать форматирование не посимвольно, а по словам.

Самый правильный вариант, конечно, разбирать чистый rtf-код (теги). Но он и самый сложный, если вы не знакомы со спецификацией rtf.
PM MAIL   Вверх
AlexNagits
Дата 30.7.2011, 23:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 14.7.2011

Репутация: нет
Всего: нет



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

Это сообщение отредактировал(а) AlexNagits - 30.7.2011, 23:04
PM MAIL   Вверх
NosfBlazE
Дата 31.7.2011, 13:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


炎丸 =Ferro ignique!=
*


Профиль
Группа: Участник
Сообщений: 51
Регистрация: 16.11.2008
Где: Russia

Репутация: нет
Всего: нет



Действительно, Вы правы. Наверное, проще искать конвертер ртф2хтмл.
Предложенный способ не подходит, во-первых, так как текст достаточно большого объема, во-вторых, он в процессе работы редактируется, а это будет сбивать индексы. =\
С ртф спецификацией, к сожалению, не знаком, в этом и вся сложность. Знаю, что там с помощью какой-то специфической разметки хранится информация о форматировании. Вот было бы здорово эту информацию как-то получать.
PM MAIL ICQ Skype Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
Partizan
PashaPash

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, Partizan, PashaPash.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | .NET для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0674 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.