除了纯格式之外,C ++中是否有一种简单的方法来判断RTF文本字符串是否包含任何内容。
例如,这个文本只是格式化,这里没有真正的内容:
{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fnil\fcharset0 MS Sans Serif;}}
在RichTextControl中加载RTF文本不是一个选项,我想要一些能够快速运行且需要最少资源的东西。
答案 0 :(得分:0)
唯一可靠的方法是编写自己的RTF解析器[spec],使用类似LibRTF的库,或者您可以考虑保持RichTextControl打开并使用新的RTF文档更新它而不是破坏它每次都是对象。
我认为RTF不是常规语言,因此无法通过RegEx正确解析(尽管有数百万次尝试,但与HTML不同),但您不需要编写完整的RTF解析器。 我将从一个简单的字符串解析器开始。尝试:
任何不是空格的内容都应该是文档内容,尽管这可能有一些例外情况,因此您需要测试大量的RTF样本。