#3789
关闭
缺陷
( 固定的 )
当变量>2GB时,Fileread()返回空字符串
|
|
||
|
|
||
描述
; proof 2GB变量文件读取错误 #AutoIt3Wrapper_UseX64=y #包括<String.au3> $sTestDir=@TempDir&“测试~\” 目录创建($sTestDir) 文件删除($sTestDir&“*.txt”) ShellExecute($sTestDir) OnAutoItExitRegister(退出) 函数退出(_E) 工具提示(“”) MsgBox(64+262144,默认,“检查SciTE输出以验证Fileread()错误。”&@LF&@LF&“然后按OK退出。”,0) 目录删除($sTestDir,1) 睡眠(500) WinClose(“[TITLE:”&StringLeft($sTestDir,3)&“;CLASS:CabinetWClass]”) EndFunc;==>_ 出口 $iLength=1024*1024*1024; 1千兆字节 $s1GB=字符串重复(“-”,$iLength) $i长度-=3 对于$i=1到2 工具提示(“写入记录#”&$i&“。这需要一些时间。敬请期待。”) 蜂鸣音(1000100) $i长度+=1 $hFileHandle=文件打开($sTestDir&$i&“.txt”,2) $sInitData=StringLeft($i和$s1GB,$iLength) FileWrite($hFileHandle,$sInitData) FileSetPos($hFileHandle,0,0) $sReadData=文件读取($hFileHandle) ConsoleWrite(@LF&“Fileread$i:”&$i&“Error:”&@Error&“Extended:”&@Extended&@LF&”Datalen:“&StringLen($sInitData)&@LF&”ReadDatalen:”&StringLen($sReadData)&@LF&“ReadData(first 10 Bytes):>”&String Left($sReadData,10)&“<”&@LF-“Stringcompare Result:”&(Stringcompare($sNitData,$sRead数据,1)? “NOT”:“”)&“等于”&@LF&@LF) 工具提示(“”) 如果StringCompare($sReadData,$sInitData,1),则退出MsgBox(16+262144,默认值,“Compare Error.I=”&$I,0) 文件关闭($hFileHandle) 下一步
文件读取$i:1错误:0扩展:1073741822 数据长度:1073741822 阅读数据长度:1073741822 读取数据(前10个字节):>1---------- Stringcompare结果:等于 文件读取$i:2错误:0扩展:1073741823 数据长度:1073741823 读取数据长度:0 ReadData(前10个字节):>< Stringcompare结果:不等于