FXT文件的2GB限制仍然存在吗? - 页 2

 
WHRoeder:

有两个2GB的限制。

  1. 像FXT一样的顺序读/写。2GB的文件长度限制是一个32位操作系统的限制。运行一个64位的操作系统
  2. 随机读取(位置搜索。)需要一个64位的应用程序,偏移量超过2GB。


基于32/64操作系统没有这种限制,文件大小的限制来自于使用的文件系统。如果你还在使用FAT,可能是时候升级了。
 

当32位的最大整数是2GB时,你如何寻求超过2GB?

当32位的整数不能容纳2GB的大小时,文件系统如何报告2GB文件的大小呢。

没有人在文件系统中设置限制。文件系统有这个限制,因为它必须使用32位的整数限制。

 
WHRoeder:
当你用32位的最大整数是2GB时,你如何寻求超过2GB?
渐进式?
 
不,文件系统仍然要记住它在两次读取之间的位置,不能。
 
WHRoeder:

当32位的最大整数是2GB时,你如何寻求超过2GB?

当32位的整数不能容纳2GB的大小时,文件系统如何报告2GB文件的大小呢。

没有人在文件系统中设置限制。文件系统有这个限制,因为它必须使用32位的整数限制。


你错了。是什么 阻止了他们使用 多于一个 整数?比如说
 
  1. 不,我没有。我不是说它们不能被修改,我是在解释它为什么存在。
  2. 你的例子是没有用的。Mt4的int不是long,是32位。所以你不能使用这些调用。
  3. 没有人会去修改一个三十年前的文件系统。
 
WHRoeder:

当32位的最大整数是2GB时,你如何寻求超过2GB?

当32位的整数不能容纳2GB的大小时,文件系统如何报告2GB文件的大小呢。

没有人在文件系统中设置限制。文件系统有这个限制,因为它必须使用32位的整数限制。


2GB的文件长度不是一个32位操作系统的限制。Win32函数,如GetFileSize()和SetFilePointer()都支持更大的文件。(只是工作起来很麻烦。)

而且FAT32的最大文件大小是4GB,而不是2GB。 http://support.microsoft.com/kb/314463

MT4不是用MQL写的。MQL只有32位有符号整数,并不意味着MT4的内部只能使用32位有符号整数。

MT4对FXT文件有(或有)2GB的限制,有两个原因。1:处理大于2GB的文件是个麻烦事。2:在2005年,有很多FAT32磁盘,市场上可用的条形历史有限,因此,没有明显的理由让开发者承受处理>2GB文件的PITA。
 

所以我在XP,32位,Build 500上进行了测试。 fxt文件正常增长(超过4GB),但MT4没有完全读取,以常规方式停止了测试/结果。

 
Trevhib:

所以我在XP,32位,Build 500上进行了测试。 fxt文件正常增长(超过4GB),但MT4没有完全读取,以常规方式停止了测试/结果。


嗨,Trevhib。

我之前在这个主题中发帖的原因正是因为,在我的Windows 7 64位电脑上运行build 500,我运行的一个测试产生了一个3.8GB的FXT文件,并且测试器从开始运行到整个测试期间的结束!!这是以前从未发生过的事情。

其他交易者能否证实他们也发生了同样的事情,也就是说,至少在64位系统上,2GB的FXT文件使用限制似乎已经消失了。

祝贺大家。

~DV

 
dark_voyager:

嗨,Trevhib。

我之所以在这个主题中发表早先的帖子,正是因为在我的Windows 7 64位电脑上运行build 500,我运行的一个测试产生了一个3.8GB的FXT文件,并且测试器从开始运行到整个测试期结束!!这是以前从未发生过的事情。

其他交易者能否证实他们也发生了同样的事情,也就是说,至少在64位系统上,2GB的FXT文件使用限制似乎已经消失了。

谢谢大家。

~DV


嗨,DV,我测试的目的(我在一个新的测试盒上进行的)是为了回答至少一个问题(根据你在64位上发现的情况,它在32位上似乎没有被修复,因为在这一点上我不确定是否已经确定)。 至少我们现在知道这一点。

我家里有一台笔记本电脑,运行Win7,64位,上面也有Build 500。 我将运行一个测试,看看我是否得到与你相同的结果并报告。