CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  基础类

当文件够大时,而我的缓冲区只有1024大小,那我…………?

楼主136206(521)2002-06-11 16:48:30 在 VC/MFC / 基础类 提问

当文件够大时,而我的缓冲区只有1024大小,那我该怎样办才能把这个大文件都用WriteFile()写到硬盘中,我用了ReadFile()这个函数把内容写到缓冲区,我想这个问题肯定很简单,用一个循环就行了,但我不知道怎么用,请高手指教,能否举个简单的例子, 问题点数:30、回复次数:7Top

1 楼pcman1990(pcman)回复于 2002-06-11 17:15:51 得分 0

假设:BYTE   buf[10000];  
   
  LPVOID   p   =   buf;  
  int   nSize   =   sizeof(buf)   /   sizeof(BYTE);  
  int   nWrite;  
  int   n   =   0;  
   
  do  
  {  
          BOOL   bSucceeded   =   WriteFile(hFile,   p,   1024,   &nWrite,   NULL);  
          if(!bSucceeded)   break;  
          ++   n;  
          int   m   =   n   *   1024;  
          if(m   >=   nSize)   break;  
          p   +=   m;  
  }Top

2 楼136206(521)回复于 2002-06-11 17:29:15 得分 0

我的问题是缓冲区,也就是buf只有1024,而不是10000或是更大,这样我该怎么办?Top

3 楼nullhue(dream.vision.realiz)回复于 2002-06-11 17:29:55 得分 0

while(1)  
  {  
  bRead=ReadFile(hFile,  
  szBuff,  
  1024,  
  &dwRead,  
  NULL);  
  if(!bRead)  
  break;  
  if(dwRead==0)  
  break;  
  WriteFile(hFile,   p,   1024,   &nWrite,   NULL);  
   
  }  
  Top

4 楼nullhue(dream.vision.realiz)回复于 2002-06-11 17:31:34 得分 0

WriteFile(hWiteFile,   szBuff,   1024,   &nWrite,   NULL);  
  Top

5 楼mfkzj(鹰翔)回复于 2002-06-11 17:32:40 得分 0

hFile=fopen(szFilePath,"rb");  
  while(!feof(hFile))  
  {  
  读写的循环  
  先从源文件读  
  写如新文件  
  }Top

6 楼nullhue(dream.vision.realiz)回复于 2002-06-11 17:32:49 得分 0

WriteFile(hWiteFile,   szBuff,   dwread,   &nWrite,   NULL);Top

7 楼sh210(.....)回复于 2002-07-19 17:39:07 得分 30

while(1)  
            {   ReadFile(hFile,byteBuf,500,&dwRead,NULL);//将打开的文件内容写到缓冲区,成功  
              if(dwRead==0)  
  break;  
                   
   
          WriteFile(tapech,byteBuf,dwRead,&nWrite,NULL);//把缓冲区的内容写到磁带中  
   
            }Top

相关问题

  • 如果要定义一个由指定文件决定大小的缓冲区,在vc中应如何实现。
  • 如何读AVI文件到缓冲区
  • 不能写入文件缓冲区,请教
  • 怎样用setsockopt重新设置SOCKET缓冲区的大小
  • 请问怎么设置串口缓冲区的大小!
  • 关于改变发送和接收缓冲区大小
  • 怎样修改Oracle的缓冲区大小???
  • 如何把一个文本文件的内容读入一个缓冲区??
  • 在XP中,怎样清除另一用户的“IE下载文件缓冲区”?
  • 请教:读取磁盘文件的时候,缓冲区一般是多大?

关键词

  • 文件
  • 内容
  • null
  • 缓冲区
  • nwrite
  • dwread
  • writefile
  • hfile
  • szbuff
  • readfile

得分解答快速导航

  • 帖主:136206
  • sh210

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo