HTML to Text
Модератор: Дед Пахом
Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
- RaFaeL
- ✯ Ветеран ✯
- Сообщения: 1386
- Зарегистрирован: 24 Март 2009, 17:59
- Откуда: НН
- Благодарил (а): 9 раз
- Поблагодарили: 1 раз
- Контактная информация:
HTML to Text
Ищется код конвертации произвольного HTML (если конкретно то электронное письмо) в текст. На чистом кларионе, можно на С который кларион понимает, winapi можно. Без лишних dll и .net. На текущий момент используем jhtml, там можно это сделать несколько костыльной комбинацией методов, но класс весьма тяжелый и ему нужно окно с контролом html, соотв. ищу что-то более подходящее для фоновой массовой конвертации
- Дед Пахом
- Старичок
- Сообщения: 3190
- Зарегистрирован: 07 Июль 2005, 16:51
- Откуда: Москва, Россия
- Благодарил (а): 12 раз
- Поблагодарили: 36 раз
- Контактная информация:
HTML to Text
Наверно через OLE(Shell.Explorer.2) можно, вызвав txt = ?ole{'Document.body.innertext'}
С уважением, ДП
- Дед Пахом
- Старичок
- Сообщения: 3190
- Зарегистрирован: 07 Июль 2005, 16:51
- Откуда: Москва, Россия
- Благодарил (а): 12 раз
- Поблагодарили: 36 раз
- Контактная информация:
HTML to Text
Я проверял так:
Можно вместо Navigate(file) загрузить содержимое файла, только не помню как.
Код: Выделить всё
?OLE1{'Navigate("'& 'file://'& CLIP(htmlfile) &'")'}
!-- тут надо вызвать что-то типа SLEEP, чтобы подождать, пока загрузится документ
MESSAGE(?OLE1{'Document.body.innertext'})
С уважением, ДП
- Дед Пахом
- Старичок
- Сообщения: 3190
- Зарегистрирован: 07 Июль 2005, 16:51
- Откуда: Москва, Россия
- Благодарил (а): 12 раз
- Поблагодарили: 36 раз
- Контактная информация:
HTML to Text
Вот так можно: сначала (при входе в процедуру) инициализируем DOM
затем в цикле загружаем html и сразу читаем текст
Код: Выделить всё
?OLE1{'Navigate("about:blank")'}
Код: Выделить всё
?OLE1{'Document.body.innerhtml'} = '<div spellcheck="true"><p>Dummy document.</p><textarea rows=4 cols=60>textarea with speling erors..</textarea></div>'
MESSAGE(?OLE1{'Document.body.innertext'})
С уважением, ДП
- Дед Пахом
- Старичок
- Сообщения: 3190
- Зарегистрирован: 07 Июль 2005, 16:51
- Откуда: Москва, Россия
- Благодарил (а): 12 раз
- Поблагодарили: 36 раз
- Контактная информация:
HTML to Text
Ну не знаю, у меня GetPropertyFailed если Navigate не успел отработать.
С уважением, ДП
- morkovin
- Ветеран
- Сообщения: 910
- Зарегистрирован: 20 Июль 2005, 14:53
- Откуда: Volgograd, Russia
- Благодарил (а): 3 раза
- Поблагодарили: 3 раза
- Контактная информация:
HTML to Text
Может это подойдёт? (StringTheory from CapeSoft)
RemoveHTML
RemoveHTML()
Description
Removes all HTML markup from the object, leaving just text behind.
Notes
Everything between <head> and </head>, between <style> and </style> and between <script> and </script> are removed.
Return Value
Returns nothing, The text in the object is changed.
WBR, morkovin
- RaFaeL
- ✯ Ветеран ✯
- Сообщения: 1386
- Зарегистрирован: 24 Март 2009, 17:59
- Откуда: НН
- Благодарил (а): 9 раз
- Поблагодарили: 1 раз
- Контактная информация:
HTML to Text
Не покороче, а чтобы работало без окон и т.п.
У меня не получилось заставить это все работать в фоне внутри процесса. На окошке в присутствии пользователя да, нормально работает, в фоне не хочет ничего грузить в объект
- Игорь Столяров
- Ветеран движения
- Сообщения: 7595
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 20 раз
- Поблагодарили: 64 раза
HTML to Text
Это в принципе интерфейсный объект.
Надо открыть пустое рабочее окно размером 1x1 и спрятать его Hide(Window).
А после выполнения - закрыть ...
Make Clarion Great Again !
- RaFaeL
- ✯ Ветеран ✯
- Сообщения: 1386
- Зарегистрирован: 24 Март 2009, 17:59
- Откуда: НН
- Благодарил (а): 9 раз
- Поблагодарили: 1 раз
- Контактная информация:
HTML to Text
Вот именно так и не удалось заставить работать. Если вывести простой stop() или открыть окно в accept цикл и крестиком сразу закрыть то работает, а пока хоть что-то не сделаешь руками - не грузит, хоть час жди там GetPropertyFailed. Вероятно, ожидается какое-то событие, но пока не удалось подобрать, что именно и куда надо послать. Да и вообще все это не решение, я по сути пишу службу, которая в фоне на сервере будет грузить электронную почту - не должно там никаких окон быть
- RaFaeL
- ✯ Ветеран ✯
- Сообщения: 1386
- Зарегистрирован: 24 Март 2009, 17:59
- Откуда: НН
- Благодарил (а): 9 раз
- Поблагодарили: 1 раз
- Контактная информация:
HTML to Text
Посмотрел, спасибо!
Более-менее работает, но полная беда с переносами и служебными символами (кавычки и т.п.)
Может быть, попробую сам допилить до какого-то удобоваримого результата