打开大于4G的文件

vbcrack 2008-12-23 05:18:51
请问有什么办法能快速的打开大于4G的文件,分段读取文件内的内容??
...全文
142 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
僵哥 2008-12-24
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 vbcrack 的回复:]
谢谢僵哥,能不能给个API的例子啊
[/Quote]
做人要厚道,要求不能无止境.

相关的API就我一楼所提到的几个,自己到MSDN查吧.
vbcrack 2008-12-24
  • 打赏
  • 举报
回复
谢谢僵哥,能不能给个API的例子啊
僵哥 2008-12-24
  • 打赏
  • 举报
回复
myFile->Seek(Relative_Position_Int64,soFromBeginning);

MyFile->Position = Relative_Position_Int64;
是等价的。
僵哥 2008-12-24
  • 打赏
  • 举报
回复
注意的是参数fmOpenRead,是只读方式打开的,不要进行Write和设置Size.
僵哥 2008-12-24
  • 打赏
  • 举报
回复
TFileStream *myFile = new TFileStream(FileName,fmOpenRead);
try{
//这里操作文件,调整文件指针,可以使用myFile->Seek(Relative_Position_Int64:偏移量,soFromBeginning:从文件头开始计算/soFromCurrent:当前位置开始计算/soFromEnd:从文件尾计算
//如果需要对文件分配大小,直接使用myFile->Size = File_Size_Int64:最终文件大小
}__finally{
myFile->Free();
}
痞子酷 2008-12-24
  • 打赏
  • 举报
回复
使用CreateFile来读,我没用过。
我知道在unix下采用64位的编译器即可,其他不做任何调整。
vbcrack 2008-12-24
  • 打赏
  • 举报
回复
使用API调试了几次没有成功,TFileStream能不能给个例子啊
僵哥 2008-12-24
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 dxkh 的回复:]
API,只能
[/Quote]
TFileStream支持大文件,只是每次操作(Read/Write)不能超过2G.设置Position(Seek)是支持。
我来看看CB 2008-12-24
  • 打赏
  • 举报
回复
API,只能
ssyqcwj 2008-12-24
  • 打赏
  • 举报
回复
chouyuanming 2008-12-24
  • 打赏
  • 举报
回复
幫頂...
僵哥 2008-12-23
  • 打赏
  • 举报
回复
也可以使用TFileStream
僵哥 2008-12-23
  • 打赏
  • 举报
回复
使用API
CreateFile或CreateFileMapping
SetFilePointer
ReadFile

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧