kxing 发表于 2013-8-20 11:51:30

求教fileopen打开大文件内存报错

请教各位大大,有没办法解决fileopen 或 fileread 打开大文件时内存报错的问题呢?
测试了一下,只要用fileopen以二进制形式打开五六百m的文件时就会内存报错,程序崩溃退出。
请问有没好的办法解决呢,感谢各位回答!!!

user3000 发表于 2013-8-20 18:23:36

本帖最后由 user3000 于 2013-8-20 18:27 编辑

回复 1# kxing
注意FileRead的可选的第2个参数, 帮助文档也给出了相关示例!Local $file = FileOpen("test.txt", 0)
If $file = -1 Then Exit MsgBox(4096, "错误", "不能打开文件.")
; 每次读取1024字节
While 1
    Local $chars = FileRead($file, 1024)
    If @error = -1 Then ExitLoop
    ;处理读取到的字符
WEnd
FileClose($file)如果同时要进行写操作,则需要用FileSetPos进行文件"定位"!

kxing 发表于 2013-8-20 20:57:54

还是不行,估计一个变量不能存储这么大的数据量。
$hFile=fileopen($filepath,16)
if $hFile=-1 then exit
local $total=""
while 1
$chars=fileread($hFile,1024)
if @error then exitloop
$total&=$chars
wend
fileclose($hFile)
我是想用来读取二进制post提交到上传表单的,所以也不知道如何能分片post上传。
纠结啊,看来没办法只能用ie调用html来实现了!!!

user3000 发表于 2013-8-20 21:54:41

回复 3# kxing
单独一个变量当然不行!
但你为什么不先存储到数组里呢?!

kxing 发表于 2013-8-20 23:17:47

存到数组后,我post提交的时候还是得连接到一个变量的啊,不然怎么能上传一个整体文件?
页: [1]
查看完整版本: 求教fileopen打开大文件内存报错