不要用RichEdit!
解决方案 »
- access多字段汇总查询?急 急 急
- DELPHI程序能不能在IMAGE控件上让鼠标拉的范围内也有一个框框区域?而且在画的时候不能消失,且可以看到画的内容
- 急急急!access violation问题,大虾们帮帮忙
- 想写一个C/S的工资管理程序,用那个数据库比较容易上手啊?
- 只定义了一个KEY=13,怎么什么都响应了??
- 如何做一个类似于windows 2000 登陆系统的程序?
- 哪位大哥知道在delphi中怎样调用API函数OpenLogFile ,或说说API函数OpenLogFile在那个*.DLL中?谢谢!
- 求助各位大虾一个问题
- 如何计算两个日期之间天数?
- 求高手帮分析记录的存放格式!
- 请问,如何判断EDIT1里的值,是否被更改过?
- 一个有关QReport报表的问题(急!!!!)
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;
其实我现在就是用的TMemoBuf,但在用的时候发现对中文支持有问题。不知你遇到过这样的问题没。所以现在想换其它的控件!
我没有仔细测试过TMemoBuf,不知是什么样的情况下,会对中文支持出现问题?
我也是无意中发现的,在文本中有中文的“”(双引号)时,会出现乱码。我的程序是这样的,用户在RichEdit内输入了格式化的文本,我将其rtf格式的内容保存在字符串内。然后我想在一个地方以非格式化的形式显示其内容。因此就需要将rtf格式转化成txt。但是由于Richedit必须要显示的容器装载,无法满足我的要求,因此我使用了TMemoBuf做转化。但在使用了一段时间后无意间发现了上面说的问题。很郁闷啊。后来下载了Rave5的源代码想直接修改TMemoBuf,一看发现写得很复杂,实在没时间做这个工作了,就想干脆换控件了。所以就想问问除了TMemoBuf还有没有其它处理rtf格式的控件或类。
测试了一下,正如你所说的,在处理中文的引号时有问题,对应的RTF代码应该是\ldblquote和\rdblquote,还不知道该如何解决。
var
AMemo : TRichEdit;
begin
Result := '';
AMemo := TRichEdit.Create(nil);
try
AMemo.ParentWindow := GetDesktopWindow();
AMemo.SelText := sRTF;
Result := AMemo.Text;
finally
AMemo.Free;
end;
end;function RTFFileToText(sRTFFile: String): String;
var
AMemo : TRichEdit;
begin
Result := '';
AMemo := TRichEdit.Create(nil);
try
AMemo.ParentWindow := GetDesktopWindow();
AMemo.Lines.LoadFromFile(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;}}' +
'\viewkind4\uc1\pard\lang2052\f0\fs20\''ba\''ba\''d7\''d6\par' +
'\ldblquote\''d6\''d0\''ce\''c4\rdblquote\par' +
'}'
)
);
end;
非常感谢你的帮助,准备用你说的方法了!