【问题标题】:Getting unformatted text from RichEdit从 RichEdit 获取未格式化的文本
【发布时间】:2012-01-10 02:39:37
【问题描述】:

我有一个 Richedit,它允许我的用户格式化和查看在我的应用程序中显示的错误消息。

我现在需要能够仅将文本(无格式)导出到他们的故障单系统使用的另一个数据库中。

我已经尝试了所有我能想到的 PlainText 组合,但我总是得到 rtf 格式。

我怎样才能只得到文本?

【问题讨论】:

  • 安德烈亚斯和大卫都是对的,但大卫是第一个看到我的错误导致我的文本混乱的人。感谢两者。

标签: delphi richedit


【解决方案1】:

我用这种方式获取无格式文本

procedure TMainForm.O1Click(Sender: TObject);

begin

if sOpenDialog1.Execute then

sRichEdit1.Lines.LoadFromFile(sOpenDialog1.FileName);

sMemo1.Text := sRichEdit1.Text;

sRichEdit1.Clear;

sRichEdit1.Text := sMemo1.Text;

对于保存文件,您必须选择 保存为 .txt 文本仍在备忘录中,但您所做的所有更改将仅在 Richedit 中,因此您必须在完成所有更改后将文本移动到备忘录,然后从备忘录中保存

另存为 .rtf 只需从 Richedit 中保存即可 希望对你有帮助

【讨论】:

    【解决方案2】:

    回答您提出的直接问题,Text 属性正是您要寻找的。由于某种原因,它没有出现在 TRichEdit 文档中,但它继承自 TCustomEdit

    在我看来(按照 cmets 对 Andreas 的回答),您真正需要做的事情如下:

    1. 将 RTF 从 DB 拉入内存流或 Blob 流。
    2. 通过该流调用RichEdit.LoadFromStream,确保PlainTextFalse
    3. 然后阅读RichEdit.Text 以获取未格式化的文本。

    目前,您只是将 RTF 作为纯文本放入控件中。您需要将其作为富文本放入控件中,为此您需要LoadFromStream

    【讨论】:

    • 谢谢你们。做到了。我知道它一定是这样的,但由于它直接加载到文本中运行良好,我不认为重新查看。
    【解决方案3】:

    要获取未格式化的文本,只需使用RichEdit1.Text

    【讨论】:

    • +1 '因为你更快。我没有我的信念的勇气,不得不检查!
    • @David:不过我也查过了!
    • 文本将文本和所有格式数据作为文本返回。我不想要格式化数据。
    • @Steve:也许你应该从一开始就提到那个“细节”?
    • 您不能使用TRichEdit.Text 属性来加载RTF 格式。要正确加载 RTF,您必须使用 TRichEdit.Lines.LoadFrom...() 方法之一,并将 TRichEdit.PlainText 属性设置为 False。然后您可以使用TRichEdit.Text 属性来检索未格式化的文本。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-06
    相关资源
    最近更新 更多