TRichEdit的问题,本小姐跳楼价500分。 读流文件,从流中取一部分输到TRichEdit1中。如果当ScrollBars属性设置为ssNone时,输到TRichEdit1中的文本正常。当ScrollBars属性设置为有滚动条时,输到TRichEdit1中的文本就乱了。请问如何解决? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 是不是可以在读入前把trichedit清空一下,clear; to:ahuige(灰不遛秋) 试过没用to:ikumei(雷欧钠德) 是多了很多字符,该读的没变。Drate(鸟窝里的虫) :当然是问题值500分,人可是五万都不买哦.......... 或者干脆将流文件发给我,说明具体要求,我来试试我对这个问题感兴趣[email protected] ikumei(雷欧钠德) :文件流是我自已写的,是记一些编程技巧和心得,一个题目对应一个内容,哪怕内容只有一行几个字符,读到TRichEdit1中多出很多不是流里面的东西。如果在TRichEdit1中不设置滚动条就全正常.代码不在这台机上,要换机麻烦。 这样啊看来是中文引起的可能性很大多出的部分是看的懂的字符还是看不懂的乱码?这个问题我也碰到过,当时费了些时间才解决针对不同的情况还是要不同的方法,有时设置trichedit的charset属性可以解决问题,有时不行。你可以试一下,还不行的话,如果你自己解决了最好,要么留个qq,什么时候方便把代码给我,这个东西光说不行,试出来才是成功啊 ikumei(雷欧钠德) :全英文也一样看得懂的乱码(字符) 放弃吧,在显示中文上,richedit有很多问题 最简单的代码,很正常var f:TMemoryStream ;begin f:=TMemoryStream.Create ; f.LoadFromFile('d:\aaa.txt'); RichEdit1.Lines.LoadFromStream(f); freeandnil(f);end; 找了一篇相关的文章,看看! http://www.csdn.net/Dev/Delphi/Document/TechDoc/del-rtf.zip是一个关于RichEdit的tips 设置Plaintext:=true 试试. 我说两句行外话:1.个别男同胞对女孩子不要太刻薄了;2.楼主好象故弄玄虚,问题点数才10却说:“TRichEdit的问题,本小姐跳楼价500分。”----这也是自己给人话柄吧。 Function Loadstr(n:Integer):string;//读标题对应的文章函数varmeint:integer;s1:Pchar;fs:TFileStream;beginfs:=TFileStream.Create((Extractfilepath(Application.ExeName)+'Mybook.txt'),fmOpenRead );try getmem(s1,fs.size); fs.Seek(n,soFromBeginning); fs.Readbuffer (meint,sizeof(meint)); fs.Seek((n+meint+4),soFromBeginning); fs.Readbuffer(meint,sizeof(meint)); fs.Readbuffer(s1^,meint); Result:=s1; freemem(s1);finally fs.free;end;end;procedure TForm1.ListBox1Click(Sender: TObject);begin If ListBox1.ItemIndex<>-1 Then Listbox2.ItemIndex :=Listbox1.ItemIndex ; RichEdit1.Text:=loadstr(strtoint(ListBox2.Items.Strings[ListBox2.ItemIndex]));end;Function mywrite(Bstr,Sstr:string):Boolean;//写入流的函数vars,s1:Pchar;meint:integer;fs:TFileStream;begintryif FileExists((Extractfilepath(Application.ExeName)+'Mybook.txt')) then//判断文件在不在beginfs:=TFileStream.Create((Extractfilepath(Application.ExeName)+'Mybook.txt'),fmOpenWrite );endelse begin fs:=TFileStream.Create((Extractfilepath(Application.ExeName)+'Mybook.txt'),fmCreate );end;s:=Pchar(Trim(Bstr));s1:=pchar(Trim(Sstr));try fs.Seek(0,soFromEnd);//指针移到文件尾 meint:=length(s);//计算字符串大小 fs.Writebuffer(meint,sizeof(meint));//把大小写入文件 fs.Writebuffer(s^,Length(s));//把字符串写入文件 meint:=length(s1);//计算第二个字符串的大小 fs.Writebuffer(meint,sizeof(meint));//把大小写入文件 fs.Writebuffer(s1^,length(s1));//把第二个字符串写入文件finallyfs.free;end;exceptResult:=False;Exit;end;Result:=True;end;procedure TForm2.Button1Click(Sender: TObject);beginif RichEdit1.Text <>'' then//如果文件框中是空将不保存begin if Edit1.Text <>'' then begin myWrite(Edit1.Text ,RichEdit1.Text ); Button1.Enabled :=false; Application.MessageBox('保存成功!','信息',MB_ICONINFORMATION+MB_OK); end;endelse Application.MessageBox('文本框中不能为空!','信息',MB_ICONINFORMATION+MB_OK);end; 关于delphi调用C写的动态链接库的函数参数类型的问题 delphi谁帮我看看这个权限啊 TIdTcp多线程阻塞问题,请高手多指点,急等 怎样在程序运行后,设置DBGrid整列的内容 怎么样把Oracle中的序列值读到控件中? 悉心求教 如何将double类型的值转化为分数形式? ★★★急急急……关于EPSON LQ-1600自定义纸张问题,希望各位帮忙,谢谢!!! 请问:如何取消QuickReport的打印??? 求教关于在两个窗体中互调的问题 请问TScrollBar控件怎么用? listBox问题
试过没用to:ikumei(雷欧钠德)
是多了很多字符,该读的没变。Drate(鸟窝里的虫) :
当然是问题值500分,人可是五万都不买哦..........
我对这个问题感兴趣
[email protected]
文件流是我自已写的,是记一些编程技巧和心得,一个题目对应一个内容,哪怕内容只有一行几个字符,读到TRichEdit1中多出很多不是流里面的东西。
如果在TRichEdit1中不设置滚动条就全正常.
代码不在这台机上,要换机麻烦。
看来是中文引起的可能性很大
多出的部分是看的懂的字符还是看不懂的乱码?
这个问题我也碰到过,当时费了些时间才解决
针对不同的情况还是要不同的方法,有时设置trichedit的charset属性可以解决问题,有时不行。
你可以试一下,还不行的话,如果你自己解决了最好,要么留个qq,什么时候方便把代码给我,这个东西光说不行,试出来才是成功啊
全英文也一样
看得懂的乱码(字符)
var
f:TMemoryStream ;
begin
f:=TMemoryStream.Create ;
f.LoadFromFile('d:\aaa.txt');
RichEdit1.Lines.LoadFromStream(f);
freeandnil(f);end;
http://www.csdn.net/Dev/Delphi/Document/TechDoc/del-rtf.zip是一个关于RichEdit的tips
1.个别男同胞对女孩子不要太刻薄了;
2.楼主好象故弄玄虚,问题点数才10却说:
“TRichEdit的问题,本小姐跳楼价500分。”
----这也是自己给人话柄吧。
var
meint:integer;
s1:Pchar;
fs:TFileStream;
begin
fs:=TFileStream.Create((Extractfilepath(Application.ExeName)+'Mybook.txt'),fmOpenRead );
try
getmem(s1,fs.size);
fs.Seek(n,soFromBeginning);
fs.Readbuffer (meint,sizeof(meint));
fs.Seek((n+meint+4),soFromBeginning);
fs.Readbuffer(meint,sizeof(meint));
fs.Readbuffer(s1^,meint);
Result:=s1;
freemem(s1);finally
fs.free;
end;
end;
procedure TForm1.ListBox1Click(Sender: TObject);begin
If ListBox1.ItemIndex<>-1 Then
Listbox2.ItemIndex :=Listbox1.ItemIndex ;
RichEdit1.Text:=loadstr(strtoint(ListBox2.Items.Strings[ListBox2.ItemIndex]));
end;Function mywrite(Bstr,Sstr:string):Boolean;//写入流的函数
var
s,s1:Pchar;
meint:integer;
fs:TFileStream;
begin
try
if FileExists((Extractfilepath(Application.ExeName)+'Mybook.txt')) then//判断文件在不在
begin
fs:=TFileStream.Create((Extractfilepath(Application.ExeName)+'Mybook.txt'),fmOpenWrite );
end
else
begin
fs:=TFileStream.Create((Extractfilepath(Application.ExeName)+'Mybook.txt'),fmCreate );
end;
s:=Pchar(Trim(Bstr));
s1:=pchar(Trim(Sstr));try
fs.Seek(0,soFromEnd);//指针移到文件尾
meint:=length(s);//计算字符串大小
fs.Writebuffer(meint,sizeof(meint));//把大小写入文件
fs.Writebuffer(s^,Length(s));//把字符串写入文件
meint:=length(s1);//计算第二个字符串的大小
fs.Writebuffer(meint,sizeof(meint));//把大小写入文件
fs.Writebuffer(s1^,length(s1));//把第二个字符串写入文件
finally
fs.free;
end;
except
Result:=False;
Exit;
end;
Result:=True;
end;procedure TForm2.Button1Click(Sender: TObject);
begin
if RichEdit1.Text <>'' then//如果文件框中是空将不保存
begin
if Edit1.Text <>'' then
begin
myWrite(Edit1.Text ,RichEdit1.Text );
Button1.Enabled :=false;
Application.MessageBox('保存成功!','信息',MB_ICONINFORMATION+MB_OK);
end;
end
else
Application.MessageBox('文本框中不能为空!','信息',MB_ICONINFORMATION+MB_OK);
end;