Delphi VCL TMemo加速字符串读取


本文整理自网络,侵删。

 
在Delphi的VCL中使用TMemo读取大量字符串时,您编写的代码通常如下。

procedure StringToMemo(AMemo:TMemo;AString:String); // Memo1复制ASTRING到
begin
  AMemo.Lines.BeginUpdate;
  AMemo.Lines.Text:=ASring;
  AMemo.Lines.EndUpdate;
end;
另外,当通过TStringList传递一个巨大的字符串时:

procedure StringToMemo(AMemo:TMemo;AString:String); //复制ASTRING到Memo1
var
  lSL:TStringList;
begin
  lSL:=TStringList.Create;
  lSL.Text:=AString;
  AMemo.Lines.Assign(lSL);
  lSL.Free;
end;
通过Assign传递时,不需要BeginUpdate / EndUpdate。在“分配”代码中使用。

但是,如果传递给TMemo的字符串变大,它将变慢。
当我在网上搜索时,我发现当我使用TMemo的LoadFromFile传递文本文件时,它以高速显示。在那种情况下,我认为我应该使用LoadFromStream传递字符串。
所以我考虑了以下代码。

procedure StringToMemo(AMemo:TMemo;AString:String); // Memo1要复制ASTRING
var
  lStrStream: TStringStream;
begin
  lStrStream:=TStringStream.Create(Astring);
  AMemo.Lines.LoadFromStream(lStrStream);
  lStrStream.Free;
end;

LoadFromStream也不需要BeginUpdate / EndUpdate。
现在,即使是VCL TMemo也可以高速读取大量字符串。

相关阅读 >>

Delphi idftp用法

Delphi从memo去重数据

Delphi 系统对话框(如浏览目录)被隐藏到主窗体后面造成程序无法操作的临时处理方式

Delphi双进程监控

Delphi 判断字符串是否相同

Delphi 我的电脑连接到 internet 了吗?

Delphi判断文件夹(目录)是否存在,不存在就创建的办法

Delphi 提取字符串左侧内容

Delphi流的操作

Delphi datasettojson jsontodataset

更多相关阅读请进入《Delphi》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...