RTF в *ML

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
GB826
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 312
Зарегистрирован: 04.08.2005 (Чт) 0:58
Откуда: Планета #3

RTF в *ML

Сообщение GB826 » 13.01.2006 (Пт) 10:41

Привет

На самом деле нужны совет и функция (готовая желательно)

Проблема в размере rtf текста

Компилю файл проекта(не в VB, а в своей программе) в xml, необходимо cжать rtf и запихать в этот же XML-файл c сохранением форматирования, потом, скорее всего, при его(xml) "проигрывании" для отображения текста (бывшего rtf) буду использовать WebBrowser
Пора уже всем хорошим людям собраться и убить всех плохих людей.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 13.01.2006 (Пт) 10:42

У RTF и HTML разные принципы форматирования, точно преобразовать не получится. И готовых функций, насколько помню, тоже нет.
Lasciate ogni speranza, voi ch'entrate.

GB826
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 312
Зарегистрирован: 04.08.2005 (Чт) 0:58
Откуда: Планета #3

Сообщение GB826 » 13.01.2006 (Пт) 10:51

Млин, есть еще идея просто сжать текст, пихнуть в XML, а из XML его извлечь потом и разжать (XML, вроде, бинарные данные умеет хранить). Тогда просто функции не помешали бы :о|, типа

arh(string) as string
extract(string) as string

ЗЫ Слазил бы в поиск, но форум тяжелый, а инета 2 метра осталось :о(
Пора уже всем хорошим людям собраться и убить всех плохих людей.

kif
Постоялец
Постоялец
 
Сообщения: 736
Зарегистрирован: 10.12.2001 (Пн) 18:06
Откуда: Украина, Одесса

Сообщение kif » 13.01.2006 (Пт) 11:00

алгоритм хаффмана, zlib, rar
Братья и сестры, что вы делаете???
Ведь вы же братья и сестры.

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 13.01.2006 (Пт) 11:38

kif писал(а):rar

И где же? Что-то я не видел библиотек для компрессии.

GB826
Идешь на последнюю страницу темы "Методы зашиты VB программы от копирования.", там я давал ссылку на сборник алгоритмов компрессии.
Свою стринговую переменную преобразуешь в байтовый массив, сжимаешь, получившийся массив конвертируешь в hex. Эту строку и пишешь в xml.
Лучший способ понять что-то самому — объяснить это другому.

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 13.01.2006 (Пт) 11:45

Мой способ преобразования в хекс

Код: Выделить всё
Const rsShema = "<xml xmlns:s='uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882' xmlns:dt='uuid:C2F41010-65B3-11d1-A29F-00AA00C14882' xmlns:rs='urn:schemas-microsoft-com:rowset' xmlns:z='#RowsetSchema'>" & _
                "<s:Schema id='RowsetSchema'>" & _
                "<s:ElementType name='row' content='eltOnly' rs:updatable='true'>" & _
                "<s:AttributeType name='Image' rs:number='41' rs:nullable='true' rs:maydefer='true' rs:writeunknown='true'>" & _
                "<s:datatype dt:type='bin.hex' dt:maxLength='2147483647' rs:long='true' />" & _
                "</s:AttributeType><s:extends type='rs:rowbase' />" & _
                "</s:ElementType></s:Schema><rs:data>" & _
                "<z:row Image='' /></rs:data></xml>"

Private Function Bin2Hex(BinDT) As String
Dim rs As New ADODB.Recordset
Dim nd As New MSXML.DOMDocument
Dim bdt() As Byte
    On Error GoTo errh
    nd.loadXML rsShema
    rs.Open nd
    bdt = BinDT
    rs.Fields(0).AppendChunk bdt
    rs.Save nd, adPersistXML
    Bin2Hex = nd.childNodes(0).childNodes(1).childNodes(0).childNodes(1).Attributes(0).Text
errh:
End Function

Private Function Hex2Bin(HexDt As String)
Dim rs As New ADODB.Recordset
Dim nd As New MSXML.DOMDocument
    If Len(HexDt) = 0 Then Exit Function
    On Error GoTo errh
    nd.loadXML rsShema
    nd.childNodes(0).childNodes(1).childNodes(0).Attributes(0).Text = HexDt
    rs.Open nd
    Hex2Bin = rs(0).GetChunk(rs(0).ActualSize)
errh:
End Function
Лучший способ понять что-то самому — объяснить это другому.


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2

    TopList  
cron