uses RpMemo;
function RTFToText(sRTF: String): String;
var
AMemo : TMemoBuf;
begin
Result := '';
AMemo := TMemoBuf.Create;
try
AMemo.RTFText := sRTF;
Result := AMemo.Text;
finally
AMemo.Free;
end;
end;
function RTFFileToText(sRTFFile: String): String;
var
AMemo : TMemoBuf;
begin
Result := '';
AMemo := TMemoBuf.Create;
try
AMemo.RTFLoadFromFile(sRTFFile);
Result := AMemo.Text;
finally
AMemo.Free;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
ShowMessage (RTFFileToText('d:\1.rtf'));
ShowMessage (
RTFToText(
'{\rtf1\ansi\ansicpg936\deff0\deflang1033\deflangfe2052{\fonttbl{\f0\fmodern\fprq6\fcharset134 \''cb\''ce\''cc\''e5;}}' +
'{\colortbl ;\red255\green0\blue0;}' +
'\viewkind4\uc1\pard\cf1\lang2052\f0\fs20 Hello\par' +
'}'
)
);
end;
function RTFToText(sRTF: String): String;
var
AMemo : TMemoBuf;
begin
Result := '';
AMemo := TMemoBuf.Create;
try
AMemo.RTFText := sRTF;
Result := AMemo.Text;
finally
AMemo.Free;
end;
end;
function RTFFileToText(sRTFFile: String): String;
var
AMemo : TMemoBuf;
begin
Result := '';
AMemo := TMemoBuf.Create;
try
AMemo.RTFLoadFromFile(sRTFFile);
Result := AMemo.Text;
finally
AMemo.Free;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
ShowMessage (RTFFileToText('d:\1.rtf'));
ShowMessage (
RTFToText(
'{\rtf1\ansi\ansicpg936\deff0\deflang1033\deflangfe2052{\fonttbl{\f0\fmodern\fprq6\fcharset134 \''cb\''ce\''cc\''e5;}}' +
'{\colortbl ;\red255\green0\blue0;}' +
'\viewkind4\uc1\pard\cf1\lang2052\f0\fs20 Hello\par' +
'}'
)
);
end;
本文提供了一种将RTF格式的文本转换为纯文本的方法,包括从字符串和文件两种方式。通过使用Delphi中的TMemoBuf组件,可以方便地去除RTF格式中的所有格式化信息,仅保留文本内容。
4352

被折叠的 条评论
为什么被折叠?



