VC 读写大文件

VC 读写大文件,第1张

先读一段比如100K,然后在这个100K的内存总查找"begin",如果查不到,再读下一个100K,直到找到为止,如果相应的"end"不在这个段中,那么再继续读下面的段,直到找到结束标签为止。

----------------------------------------------------- 补充1

这个问题不难解决,在读数据的时候,需要多读一点,但是下次再读取的时候,不能仅接着上次的尾部读取了,而是应该倒退几个字符,倒退的数目应该是:最大特征字符长度 - 1。

下面是个简单的图解:

------------------|xxx 3 xxx|

---------|xxx 2 xxx|

|xxx 1 xxx|

################################################

一次性的new出一个特别巨大的内存,是一个愚蠢的做法,如果是一个大于4G的文件,那么你就会更加困难。虽然系统会自动的申请虚拟内存,但是这将极大的影响函数处理的速度,这也是我们国家软件行业所存在的通病,虽然很多程序也能够运行,但是效率与速度都相当的落后,我们应该把软件做的尽可能的快、智能、便捷、清丽。

你还没了解文件存储的方便之处呢,你用个for循环多麻烦了,看看这个,

发送端:

int SendFileLength = 0//保存已经发送的文件的长度

while (SendFileLength <filelength)

{

file.Seek(SendFileLength,CFile::begin)

sockSenderror = send(SendFileSock,buffer,TempSendLength,0)

if(SOCKET_ERROR == sockSenderror)

{

closesocket(SendFileSock)

return 0

}

SendFileLength += TempSendLength

}

接收端:

int finish=0//保存receive函数的返回值

while(true)

{

finish = recv(ConnSock,buffer,BUFFERSIZE,0)//开始写入文件

if(SOCKET_ERROR == finish)

{

AfxMessageBox("接收文件错误!")

return 0

}

file.Write(buffer,finish)//自动就写到文件末尾了

}

你把这两段组织组织就行了,想发多大就发多大,剩下的交给你了。

真不行了再百度hi一下。

如果您在下载 VC2010 后只看到一堆文件,请按照以下步骤进行 *** 作:

1. 打开下载文件夹并定位到 VC2010 下载文件,查看文件扩展名是否为 .iso。如果是,则说明您已经下载了 VC2010 ISO 镜像文件,可以继续进行下一步 *** 作。如果不是,请获取正确的下载文件。

2. 将 ISO 文件复制到您想要安装 VC2010 的电脑上,并双击该文件来挂载 ISO 文件。windows 10 自带的木虫镜像挂载即可。

3. 双击打开加载后的 ISO 文件,您将看到一个名为“autorun.exe”的文件,双击它以开始安装 VC2010。

4. 按照安装向导的指示进行 *** 作,选择您需要安装的组件和选项。如果您不确定哪些选项适合您的需求,请选择默认设置进行安装。

5. 等待安装完成后,您就可以开始使用 VC2010 进行编程了。

希望以上步骤能帮助到您。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11415298.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-15
下一篇 2023-05-15

发表评论

登录后才能评论

评论列表(0条)

保存