首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

RTF文件,怎么解析

2013-01-07 
RTF文件,如何解析。RTF文件,如何解析?指点方法{\rtf1\ansi\ansicpg936\deff0\deflang1033\deflangfe2052{\f

RTF文件,如何解析。
RTF文件,如何解析?指点方法

{\rtf1\ansi\ansicpg936\deff0\deflang1033\deflangfe2052{\fonttbl{\f0\fnil\fcharset134 \'cb\'ce\'cc\'e5;}{\f1\fswiss\fcharset0 Arial;}}
{\colortbl ;\red255\green0\blue0;\red255\green255\blue0;\red0\green128\blue0;\red0\green0\blue0;}
\viewkind4\uc1\pard\cf1\lang2052\f0\fs24\'d1\'fd\'b8\'e7\'a3\'ac\cf2\highlight3\lang0\f1\fs20\u35874?\u35874?\u24744?\u65281?\cf4\par
}
 


不知道如何解析,我想读出文字内容。
[解决办法]
一个折中的方法。

#include <ComCtrls.hpp>

String __fastcall RtfToTxt(TForm *frm, String strRtf)
{
    TRichEdit *re = new TRichEdit(frm);
    TMemoryStream *ms = new TMemoryStream;

    re->Parent = frm;
    re->PlainText = false;
    ms->Size = strRtf.Length();
    ms->Write(strRtf.c_str(), strRtf.Length());
    ms->Position = 0;
    re->Lines->LoadFromStream(ms);
    re->PlainText = true;
    String str = re->Lines->Text;

    delete ms;
    delete re;

    return str;
}

void __fastcall TForm1::Button1Click(TObject *Sender)
{
    Caption = RtfToTxt(this, Memo1->Lines->Text);
}


将你以解析的文本放到Memo中,然后运行以上的代码。不过解析后的文本让我很汗颜啊。呵呵。
[解决办法]
忍耐不住好奇心,看了看rtf内容,楼主果然有先见之明啊。
[解决办法]
查了一下,这个链接是微软关于RTF格式的定义标准
http://www.microsoft.com/en-us/download/details.aspx?id=10725
这几个链接是如何分析RTF格式的一些经验
http://blog.sina.com.cn/s/blog_678e5e320100oxz5.html
http://blog.csdn.net/shaxunyeman/article/details/1813684
http://www.txsz.net/xs/delphi/3/RTF%E6%96%87%E4%BB%B6%E6%A0%BC%E5%BC%8F%E5%88%86%E6%9E%90%E5%8F%8A%E5%9C%A8%E5%A4%9A%E5%AA%92%E4%BD%93%E4%B8%AD%E7%9A%84%E5%BA%94%E7%94%A8.htm

[解决办法]
这个,妖哥是先看了RTF内容后做的代码吧.... 

:)
[解决办法]
如果只是要获取rtf文字不需要自己解析,直接使用控件如TMemo或TRichEdit载入就行了;如果想要得其中字体样式、颜色、名称、大小等信息就需要自己解析啦,很巧,我以前做过一个,
地址:http://download.csdn.net/detail/qq752923276/2913731
[解决办法]
char  AsciiBuff[2];
改成
char  AsciiBuff[3];
就可以了

热点排行