加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

delphi – 使用resourcestring而不是一个const字符串有什么优势

发布时间:2020-12-15 10:17:28 所属栏目:大数据 来源:网络整理
导读:你会告诉我,如果有一些优势(减少sotorage空间,增加速度等)使用: resourcestring MsgErrInvalidInputRange = 'Invalid Message Here!'; 代替 const MsgErrInvalidInputRange : String = 'Invalid Message Here!'; 解决方法 const选项将比resourcestring更
你会告诉我,如果有一些优势(减少sotorage空间,增加速度等)使用:
resourcestring
    MsgErrInvalidInputRange = 'Invalid Message Here!';

代替

const
    MsgErrInvalidInputRange : String = 'Invalid Message Here!';

解决方法

const选项将比resourcestring更快,因为稍后将调用Windows API来获取资源文本。
您可以通过使用一些缓存机制来加快速度。这就是我们在增强型Delphi RTL中所做的工作。

如果您需要多次访问资源内容,那么首先将资源重新加载到字符串中是个好主意。

资源的重点是允许i18n(国际化)您的程序。

你有一些版本的Delphi IDE的翻译经理。但它依赖于外部DLL。

您可以使用来自Linux世界的gettext系统,从http://dxgettext.po.dk依赖于外部.po文件。

我们在我们的框架中包含了我们自己的i18n机制,它将翻译和缓存resourcestring文本,并依赖于外部.txt文件(可以使用UTF-8或Unicode文本文件,从Delphi 6到XE)。缓存使得它与const用法一样快。见http://synopse.info/fossil/finfo?name=SQLite3/SQLite3i18n.pas

还有其他开源或商业解决方案。

关于大小存储,资源化存储为UC2缓冲区。所以resourcestring会比Delphi 2009使用更多的内存。由于Delphi 2009,所有的字符串都是unicodestring,即UCS2,所以你不会有更多的存储空间。在所有情况下,文本的存储大小不是应用程序的较大尺寸参数(位图和代码大小对最终的exe有更大的影响)。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读