我有大于2G的文件需要读写。不能成功。
assignfile(f,self.OpenDialog1.filename);
reset(f);
seek(f,k);
if not eof(f)then
begin
////
end;
当k大于700M时就显示为表现为eof了,好像文件只有700M一样。
写文件也出现这样的问题。
有什么办法吗?或者问题处在什么地方。
assignfile(f,self.OpenDialog1.filename);
reset(f);
seek(f,k);
if not eof(f)then
begin
////
end;
当k大于700M时就显示为表现为eof了,好像文件只有700M一样。
写文件也出现这样的问题。
有什么办法吗?或者问题处在什么地方。
解决方案 »
- [考题]BASM不用call调用函数
- 如何将 一串字串 赋值给 自定义的结构?
- Inter base
- dbgrideh取求和值
- 想编写一个程序能够读出指定文件夹下的所有文件的信息(包括各子文件绝对路径、文件名、大小)
- 关于内存分配的问题请教
- 帮忙翻译一下visa versa是什么?
- (((((((( SoS ))))))如何使 EXCEL 的关闭按钮“X”和 “文件”中的"退出"操作 失效
- 100分问个简单的问题:有一个.h的文件,C写的在DELPHI中能引用嘛?怎么引用?
- 100分:谁有学籍管理,档案管理的源程序(不用特别大,但功能要完善,如果可用我会分几个贴子给分)
- 提取word到数据库···
- 求思路
用内存映射
CreateFile()
CreateFileMapping()
MapViewOfFile()
我发觉真正影响速度的就是只有几句代码。
上次遇到一个问题对我启发很大,我程序要在一个结构中读写一个值,内存中有一个大的结构数组。
程序要在这个结构数组中找到这个结构,然后在结构中取某个值,这个结构的size很大。
我原先是用函数返回这个结构,然后再取值,由于是一些列值,每取一次,就要返回这个结构。
后来改用指针,只返回指针,再取值,速度就提高了百倍。读一些列数据要一分钟的,改了后就只需要一秒。
因为这里面没有大量的内存拷贝。
或者用Delphi的TFileStream,TFileStream支持的也是64位大小的文件.
64位大小对现在来说是无限的,因为世界上还没有那么大的硬盘.