|
10楼

楼主 |
发表于 2024-7-25 15:00:09
|
只看该作者
福建省泉州市
.版本 2
.子程序 读入文件_子程序, 长整数型, , 500M以上,多线程不崩溃的,大文件读入。
.参数 原文件路径, 文本型
.参数 字节集数组, 字节集, 参考 数组
.局部变量 文件路径, 文本型
.局部变量 文件号, 整数型
.局部变量 字节集, 字节集
.局部变量 文件大小, 长整数型
.局部变量 文件号长啦, 长整数型
.局部变量 aa, 长整数型
.局部变量 ii, 整数型
文件路径 = 原文件路径
文件号 = 打开文件 (文件路径, 1, )
文件号长啦 = 取文件长度 (文件号)
' 文件大小 = 11 ' 测试
文件大小 = 1024 × 100 × 1024 ' 大于100M
.如果 (文件号长啦 > 文件大小) ' 大于100M,就分多段读入
aa = 0
.计次循环首 (文件号长啦 ÷ 文件大小 + 1, ii)
字节集 = { }
移动读写位置 (文件号, aa, 文件大小)
字节集 = 读入字节集 (文件号, 文件大小)
' 内存字节集 = 内存字节集 + 字节集 ' 20231213-4-内存溢出,还是不行,太大了。
aa = aa + 文件大小 × 2
.如果真 (字节集 ≠ { })
加入成员 (字节集数组, 字节集)
.如果真结束
' 输出调试文本 (到文本 (取数组成员数 (字节集数组)) + “==d==” + 到文本 (ii)) ' 测试
.计次循环尾 ()
.否则
' ---------------------
移到文件首 (文件号)
字节集 = 读入字节集 (文件号, 取文件长度 (文件号))
加入成员 (字节集数组, 字节集)
.如果结束
' 输出调试文本 (取文件长度 (文件号))' 测试
关闭文件 (文件号)
返回 (文件号长啦)
|
|