![]() |
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]() ![]() ![]() |
|
Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 192 Всего: 484 |
Нужно сконвертировать RTF в HTML.
Стандарт минимальный RTF 1.0 - только фонт (размер, цвет, стиль и т.д.), выравнивание и пункты. В идеале нужно получить функцию RtfToHtml(rtf: string): string; Вот, сижу мучаюсь. Результат пока на 2 с плюсом. Какой-то есть, но неудовлетворительный. Нашел на тори 2 решения. Одно хорошее, но нерабочее. Второе рабочее, но десятки килобайт кода. Почесал тыковку, решил, что проще будет делать анализ позиционный, как в теме "RTF: Форматирован ли текст". Но что-то плохо работает. Может кто видел готовое решение? В принципе, если помучаться, то рожу решение до конца дня. Но, если кто-то может помочь - буду рад. P.S. Код из DRKB вообще непонятно что делает в FAQ. Я понимаю, что он что-то конвертирует. Но никакого отношения к RTF и HTML он не имеет, хотя гордо лежит там именно под этим заголовком. |
|||
|
||||
Демо |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1278 Регистрация: 3.11.2005 Репутация: 30 Всего: 50 |
В PM ссылку отправил.
-------------------- |
|||
|
||||
Guedda |
|
|||
![]() Подрывник ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3137 Регистрация: 27.12.2005 Где: Ростов-на-Дону Репутация: 14 Всего: 78 |
А может ссылку сюда кинешь?
А то многим интересен этот вопрос. Я не исключение. -------------------- Ll 2 |
|||
|
||||
MIX55 |
|
|||
![]() много работы ![]() Профиль Группа: Awaiting Authorisation Сообщений: 208 Регистрация: 23.10.2005 Где: Здесь Репутация: 3 Всего: 4 |
я вот нашел модуль RTF2HTML правда для Visual Basic'a если что могу ссылку кинуть
--------------------
Hарод, а как в дельфи писать паскалевские проги....?*********************************************Жизнь слишком коротка, чтобы писать на Assembler'e |
|||
|
||||
Демо |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1278 Регистрация: 3.11.2005 Репутация: 30 Всего: 50 |
Политика сайта не позволяет. Пусть Snowy это сделает-) -------------------- |
|||
|
||||
Matematik |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1027 Регистрация: 11.3.2006 Репутация: 17 Всего: 50 |
||||
|
||||
Демо |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1278 Регистрация: 3.11.2005 Репутация: 30 Всего: 50 |
Ну у меня не один, и не 2 постинга уже порезали. Какой смысл давать такие ссылки тогда? -------------------- |
|||
|
||||
Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 192 Всего: 484 |
Демо, посмотрел. Первый вариант уж слишком ограничен. Пропускает максимум возможного.
Второй вариант ('rtf2html © 2001 by Johannes Tronkle') на 4 с плюсом. Немного плавают шрифты, не всегда цвет текста попадает. Но в целом хорошо. Если бы не кол-во кода. Думаю, у меня получится гораздо меньше. Да и с размерами шрифта поточнее будет. Мне осталось исправить закрытие только что открытых тегов и сделать тэги параграфа. |
|||
|
||||
Демо |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1278 Регистрация: 3.11.2005 Репутация: 30 Всего: 50 |
Snowy,
;) -------------------- |
|||
|
||||
Guedda |
|
|||
![]() Подрывник ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3137 Регистрация: 27.12.2005 Где: Ростов-на-Дону Репутация: 14 Всего: 78 |
Может хотя бы коды выложите, а ссылку не надо?
Ну очень интересно, как это реализовывают люди... -------------------- Ll 2 |
|||
|
||||
Демо |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1278 Регистрация: 3.11.2005 Репутация: 30 Всего: 50 |
-------------------- |
|||
|
||||
Alex |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4147 Регистрация: 25.3.2002 Где: Москва Репутация: 80 Всего: 162 |
-------------------- Написать можно все - главное четко представлять, что ты хочешь получить в конце. |
|||
|
||||
Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 192 Всего: 484 |
||||
|
||||
Alexeis |
|
|||
![]() Амеба ![]() Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 109 Всего: 459 |
-------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 192 Всего: 484 |
||||
|
||||
RA |
|
|||
![]() Брутальный буратина ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3497 Регистрация: 31.3.2002 Где: Лес Репутация: 14 Всего: 115 |
Могу предложыть РичВью там это встроенно + ЕдокЭнджайн к рич вьюву там можно экспортировать хоть в pdf
|
|||
|
||||
Guedda |
|
|||
![]() Подрывник ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3137 Регистрация: 27.12.2005 Где: Ростов-на-Дону Репутация: 14 Всего: 78 |
Это компонент или программа, или класс?
Подробнне, пожалуйста... -------------------- Ll 2 |
|||
|
||||
Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 192 Всего: 484 |
Пробовали. Впечатляет. Но во-первых платный, во вторых из-за такой кучи возможностей, программа от него тяжелеет хорошо.
Добавлено @ 15:22 Guedda, на торри его найдешь. |
|||
|
||||
Guedda |
|
|||
![]() Подрывник ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3137 Регистрация: 27.12.2005 Где: Ростов-на-Дону Репутация: 14 Всего: 78 |
Спасибо.
-------------------- Ll 2 |
|||
|
||||
RA |
|
|||
![]() Брутальный буратина ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3497 Регистрация: 31.3.2002 Где: Лес Репутация: 14 Всего: 115 |
Snowy, ну первое поправимо в клубе, а второе увы никак.
Это сообщение отредактировал(а) RAdmin - 29.3.2006, 18:10 |
|||
|
||||
Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 192 Всего: 484 |
Нет. Мне всего лишь нужно конвертнуть.
Таскать такой размер из-за этого мне совсем не к чему. Вот пыхтю, пишу конвертор. Как напишу - выложу. |
|||
|
||||
Alex |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4147 Регистрация: 25.3.2002 Где: Москва Репутация: 80 Всего: 162 |
Все понимаю, в твоих руках изменить его там ![]() Это сообщение отредактировал(а) Alex - 30.3.2006, 23:07 -------------------- Написать можно все - главное четко представлять, что ты хочешь получить в конце. |
|||
|
||||
Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 192 Всего: 484 |
У меня пока получилось такое решение:
Времени нормально протестировать не было. Если можете, потестите, укажите недостатки. |
|||
|
||||
Yanis |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2937 Регистрация: 9.2.2004 Где: Москва Репутация: 72 Всего: 111 |
Посмотри прикреплённый архив с модулем rtf2html.pas. Даёт прирост 6656 b. Ещё наткнулся на обсуждение. Там же линк на этот модуль.
Это сообщение отредактировал(а) Yanis - 31.3.2006, 09:59 Присоединённый файл ( Кол-во скачиваний: 9 ) ![]() |
|||
|
||||
Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 192 Всего: 484 |
Yanis, этот модуль тут уже 2 раза упоминался.
Он довольно тупой и при малейшем шаге влево-вправо вешает программу. Повторюсь - его я пробовал использовать самым первым. Не годится. Лучше попробуй потестить мой вариант. Он уже готов и работает. Нужно только оттестить разные варианты оформления текста и параграфов. С текстом он справляется отлично. Думаю глюки могут быть с форматированием параграфов. |
|||
|
||||
Yanis |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2937 Регистрация: 9.2.2004 Где: Москва Репутация: 72 Всего: 111 |
Сорри ![]() Попробую... Добавлено @ 11:24 Может неправильно что то делаю, но у меня вообще код кажется не работает. Далаю так:
После этого в сохранённом файле просто текст, без единого тега ![]() |
|||
|
||||
Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 192 Всего: 484 |
+ я нашел одну маленькую бажечку: После создания RichEdit, нужно сделать re.WordWrap := false; Уже поправил в исходно посте. |
|||
|
||||
Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 192 Всего: 484 |
Пофиксил еще одну багу - пропускались пустые строки.
Теперь нужна помощь: как задетектить URL? Нужно TXT гиперссылки превращать в HTML гиперссылки. как в тексте определить, что есть гиперссылка, а что нет? |
|||
|
||||
_hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 15 Всего: 98 |
так, как и все делают -- есть в тексте http:// ( https://, ftp:// ) -- ссылка, иначе -- нет.
-------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 192 Всего: 484 |
||||
|
||||
_hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 15 Всего: 98 |
еще бывают варианты таскания с собой архива какой-нить dns или определение ссылки на лету ( запрос к dns если два латинских слова разделены точкой, но не разделены пробелом )
но эти способы довольно-таки ресурсоемки и для просторов xUSSR не особо годятся... -------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
Yanis |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2937 Регистрация: 9.2.2004 Где: Москва Репутация: 72 Всего: 111 |
Наверное по другому никак. Например в ICQ набираешь http://, то она определяет, что это уже есть ссылка. Это сообщение отредактировал(а) Yanis - 31.3.2006, 13:52 |
|||
|
||||
Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 192 Всего: 484 |
||||
|
||||
Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 26 Всего: 146 |
мож по окончаниям типа .ru, .com, .org, .gov, .ua их же будет значительно меньше
![]() -------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. ![]() |
|||
|
||||
Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 192 Всего: 484 |
||||
|
||||
Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 192 Всего: 484 |
Наверняка должны быть системная функция детекта урлов.
RichEdit ведь как-то детектит их на системном уровне. Поковырял SDK, нашел только функцию UrlIs. Но это уже лучше, чем ничего... |
|||
|
||||
Alexeis |
|
|||
![]() Амеба ![]() Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 109 Всего: 459 |
Snowy, ссылки типа [email protected] легко находятся при помощи регулярных выражений
-------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Общие вопросы" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |