找回密码
 加入
搜索
查看: 8913|回复: 4

[系统综合] 求教fileopen打开大文件内存报错

[复制链接]
发表于 2013-8-20 11:51:30 | 显示全部楼层 |阅读模式
请教各位大大,有没办法解决fileopen 或 fileread 打开大文件时内存报错的问题呢?
测试了一下,只要用fileopen以二进制形式打开五六百m的文件时就会内存报错,程序崩溃退出。
请问有没好的办法解决呢,感谢各位回答!!!
发表于 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进行文件"定位"!
 楼主| 发表于 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来实现了!!!
发表于 2013-8-20 21:54:41 | 显示全部楼层
回复 3# kxing
单独一个变量当然不行!
但你为什么不先存储到数组里呢?!
 楼主| 发表于 2013-8-20 23:17:47 | 显示全部楼层
存到数组后,我post提交的时候还是得连接到一个变量的啊,不然怎么能上传一个整体文件?
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-10-6 13:18 , Processed in 0.077724 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表