在 Delphi 11 Alexandria 的 Windows 10 中的 32 位 VCL 应用程序中,我需要在 RTF 文件中搜索文本。所以我使用这个函数(在这里找到)从 RTF 文件中提取纯文本:
function RtfToText(const RTF_FilePath: string; ReplaceLineFeedWithSpace: Boolean): string;
var
RTFConverter: TRichEdit;
MyStringStream: TStringStream;
begin
RTFConverter := TRichEdit.CreateParented(HWND_MESSAGE);
try
MyStringStream := TStringStream.Create(RTF_FilePath);
try
RTFConverter.Lines.LoadFromStream(MyStringStream);
RTFConverter.PlainText := True;
RTFConverter.Lines.StrictDelimiter := True;
if ReplaceLineFeedWithSpace then
RTFConverter.Lines.Delimiter := ' '
else
RTFConverter.Lines.Delimiter := #13;
Result := RTFConverter.Lines.DelimitedText;
finally
MyStringStream.Free;
end;
finally
RTFConverter.Free;
end;
end;
但是,该函数返回的是 RTF 文件的文件路径,而不是 RTF 文件的纯文本内容!
这个函数有什么问题,我怎样才能有效地从 RTF 文件中提取纯文本而不必使用父TRichEdit
控件?