Delphi XE6,从数据库加载rtf

时间:2014-06-13 08:44:54

标签: database delphi load rtf delphi-xe6

如何将字符串转换为从数据库中读取的RTF格式? 读取时,在richedit中出现带有标记的字符串:/ par {ansistring .......

我尝试使用此代码,但结果是一样的。

    rtfString:= set1.fieldbyname('corpo_rtf').asansistring;
    stream := TMemoryStream.Create;
    stream.Clear;
    stream.Write(PAnsiChar(rtfString)^, Length(rtfString));
    stream.Position := 0;
    corpo.PlainText := False;
    corpo.Lines.LoadFromStream(stream);
    stream.Free;

1 个答案:

答案 0 :(得分:1)

如果内存流的内容是有效的RTF,则代码可以正常工作。因此,情况并非如此。

您需要深入了解内存流的实际内容。将其写入扩展名为.rtf的文本文件。尝试使用Wordpad加载它。走着瞧吧。您应该看到与Delphi应用程序显示相同的内容。

那么,这可能会出错?一些可能的原因包括:

  • 数据库中的数据无效RTF。
  • 正在执行一些不需要的文本转换。我们假设rtfString的类型为AnsiString。是吗?