我的程序如下:
RichEdit1.Clear;
RichEdit1.PlainText:=False;
RichEdit1.Lines.LoadFromFile('D:\abc.txt');
for i:=0 to RichEdit1.Lines.Count-1 do
begin
Str:=RichEdit1.Lines[i];
Str:=StringReplace(Str,'WindowsXP','Windows98',这还一个参数);
RichEdit1.Lines.Delete(i);
RichEdit1.Lines.Insert(Str,i)
end;
RichEdit1.PlainText:=True;
RichEdit1.Lines.SaveToFile('D:\abc.txt')
我的程序很简单,就是要修改一下某个文本文件中的一些内容。
但是如果这个文件中有一段很长的字符,以回车为结束,记事本的一行显示不完,要换到下一行才能显示完(不是那种自动换行)。遇到这样的Line的时候,程序就会在RichEdit1.Lines.Delete(i); RichEdit1.Lines.Insert(Str,i)出错:RichEdit Line Insertion error。
于是我把程序改成了这样:
RichEdit1.Clear;
RichEdit1.PlainText:=False;
RichEdit1.Lines.LoadFromFile('D:\abc.txt');
RichEdit1.Lines.Text:=StringReplace(RichEdit1.Lines.Text,'WindowsXP','Windows98',这还一个参数);
RichEdit1.PlainText:=True;
RichEdit1.Lines.SaveToFile('D:\abc.txt')
结果在执行RichEdit1.Lines.Text:=StringReplace(RichEdit1.Lines.Text,'WindowsXP','Windows98',这还一个参数);还是出现了同样的错误。
这是为什么?应该如何解决呢?
RichEdit1.Clear;
RichEdit1.PlainText:=False;
RichEdit1.Lines.LoadFromFile('D:\abc.txt');
for i:=0 to RichEdit1.Lines.Count-1 do
begin
Str:=RichEdit1.Lines[i];
Str:=StringReplace(Str,'WindowsXP','Windows98',这还一个参数);
RichEdit1.Lines.Delete(i);
RichEdit1.Lines.Insert(Str,i)
end;
RichEdit1.PlainText:=True;
RichEdit1.Lines.SaveToFile('D:\abc.txt')
我的程序很简单,就是要修改一下某个文本文件中的一些内容。
但是如果这个文件中有一段很长的字符,以回车为结束,记事本的一行显示不完,要换到下一行才能显示完(不是那种自动换行)。遇到这样的Line的时候,程序就会在RichEdit1.Lines.Delete(i); RichEdit1.Lines.Insert(Str,i)出错:RichEdit Line Insertion error。
于是我把程序改成了这样:
RichEdit1.Clear;
RichEdit1.PlainText:=False;
RichEdit1.Lines.LoadFromFile('D:\abc.txt');
RichEdit1.Lines.Text:=StringReplace(RichEdit1.Lines.Text,'WindowsXP','Windows98',这还一个参数);
RichEdit1.PlainText:=True;
RichEdit1.Lines.SaveToFile('D:\abc.txt')
结果在执行RichEdit1.Lines.Text:=StringReplace(RichEdit1.Lines.Text,'WindowsXP','Windows98',这还一个参数);还是出现了同样的错误。
这是为什么?应该如何解决呢?
begin
ss:=TStringList.Create;
ss.LoadFromFile(...);
...完成你的字符操作
ss.SaveToFile(...);
RichEdit1.Lines:=ss;//如果没有必要显示文件,这句可以省去
ss.free;
end;其实这样的代码给搂住写的没有什么区别,不过我的意见如果不需要用户界面就尽量少用控件,如TBitmap可以完成的事情就不要用TImage,TStrings可以完成的事情就少用TListBox,这样可以提高运行的速度和减少出错的机会。