首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TIniFile的最大文件大小是多少?

TIniFile的最大文件大小是多少?
EN

Stack Overflow用户
提问于 2021-01-22 20:02:46
回答 1查看 637关注 0票数 1

我的程序使用TIniFile操作ini文件。我在一节中读过TIniFile类有64 has的限制。然而,在我的测试中,它的工作时间似乎超过了100 my。我使用的是Delphi 10.3.3和Windows 10。

64 of限制只存在于旧版本的Windows中吗?或者,我应该使用TMemIniFile来保持安全吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-01-24 12:44:28

基本上,ini文件或例程GetPrivateProfileString ( TIniFile用于读取数据)的大小没有限制。但是在使用TIniFile时有一些限制和需要考虑的问题。

查看TIniFile实现的代码(谢谢德尔菲),有几个地方使用GetPrivateProfileString从ini文件中检索数据。

TIniFile.ReadString中,用于读取字符串值的缓冲区大小固定为2048 (2k)。由于所有其他“值”请求例程使用此例程实际从inifile读取数据,因此它基本上限制了所有这些例程的缓冲区大小。

其次,TIniFile.ReadSections例程使用16384 (16k)字符的启动缓冲区。但是,当这个缓冲区太小时,它使用了一个基于文件大小的动态缓冲区,因此这样您就不会遇到缓冲区问题(但是由于实际读取整个文件来估计缓冲区大小,这对于大型ini文件来说将非常慢)。

最后是TIniFile.ReadSection例程,它使用1024 (1k)的初始缓冲区大小。但在需要时动态地分配更大的缓冲区。因此,在这一点上,似乎也没有限制(文件)大小。

注意事项:此信息基于德里10.3和德尔菲XE2。在旧版本中,我们有其他缓冲区分配策略..。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65852003

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档