关于RichEdit的两个问题(100分)(100分)

  • 主题发起人 主题发起人 waiwai
  • 开始时间 开始时间
W

waiwai

Unregistered / Unconfirmed
GUEST, unregistred user!
1、在RichEdit中粘贴中文文本时有时会出现乱码,怎样才能解决?
2、怎样删除RichEdit中的空行和行末的空格以及文件末尾的空行和空格?
 
1、richedi时常这样,换换版本看如何
2、文件末尾的空行和空格: richedit.Text:=TrimRight(richedit.Text)
怎样删除RichEdit中的空行和行末的空格
for i:=0 to richedit.Lines.Count-1 do
一行一行 TrimRight,遇到空行 richedit.Lines.Delete(i)
 
请问,trimright是什么东西?
 
function TrimRight(const S: string): string;

Description

TrimRight returns a copy of the string S with trailing spaces and
control characters removed.
 
thanks,
对了,从哪里知道这么多小函数,比如 InputBox, SelectDirectory
等等,难道大家把源码都看了一遍吗?
 
哈哈,差不多,我把sysUtils的头给切了一分下来放在桌面上。哈哈哈……

整天看着这个头……——好可怕。 ^-^
 
aimingoo,你太恐怖了!别吓着MM们。:-)
 
各位大侠,请帮我解决乱码的问题,谢谢!或者拥什么控件?
 
删除行首行尾空格:(包括中文空格)

function DeleteTerminalBlank(const Line:string):string;
var
oldLine:string;
SelPos1,SelPos2:integer;
b1,b2:boolean;
Begin
if(Line = '') then
begin
Result := '';
exit;
end;

OldLine := Line;

SelPos1 := Pos(' ',OldLine);
SelPos2 := Pos(' ',OldLine);
b1 := (SelPos1 = 1);
b2 := (SelPos2 = 1);
while(b1 or b2) do
Begin
if(b1) then Delete(OldLine,1,1)
else Delete(OldLine,1,2);
SelPos1 := Pos(' ',OldLine);
SelPos2 := Pos(' ',OldLine);
b1 := (SelPos1 = 1);
b2 := (SelPos2 = 1);
end;

b1 := OldLine[Length(OldLine)] = ' ';
if(Length(OldLine) > 2) then b2 := Copy(OldLine,Length(OldLine) - 1,2) = ' '
else b2 := false;

while((b1 or b2) and (Length(OldLine) <> 0)) do
Begin
if(b1) then Delete(OldLine,Length(OldLine),1)
else Delete(OldLine,Length(OldLine) - 1,2);
b1 := OldLine[Length(OldLine)] = ' ';
if(Length(OldLine) > 2) then b2 := Copy(OldLine,Length(OldLine) - 1,2) = ' '
else b2 := false;
end;

Result := OldLine;
end;

乱码的问题,那位大侠知道怎么回事?会不会是因为RichEdit支持RTF格式引起的?
 
当然不是了,如果不支持rtf, 还叫 richedit 吗?

乱码的问题,试试找一个中文的 riched32.dll 吧。
 
粘贴中文我没有遇到这样的问题,估计是操作系统的文件被其他程序的同名文件替换的结果。
 
多人接受答案了。
 
后退
顶部