0

如何将字符串转换为从数据库读取的 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;
4

1 回答 1

1

如果内存流的内容是有效的 RTF,您的代码就可以正常工作。因此,事实并非如此。

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

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

  • 数据库中的数据不是有效的 RTF。
  • 正在执行一些不需要的文本转换。我们假设rtfString是 类型AnsiString。是吗?
于 2014-06-13T09:09:00.443 回答