joy0861,你的文件大师里的文件分割的代码可以给我吗?

rjmf 2003-08-18 07:32:08
谢谢,高分哦~
...全文
83 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
joy0861 2003-08-18
  • 打赏
  • 举报
回复
void CCut::OnKaishi()
{
hebingneirong="copy ";//初始化合并文件内容
// TODO: Add your control notification handler code here
//得到正确的存放位置
if (m_savepath.Right (1)!='\\')
m_savepath=m_savepath + '\\';
GetDlgItem(IDC_PER)->GetWindowText(m_per);//m_per关联设置的分割后每份文件的大小
long per;//得到每份文件得大小,单位是K字节
per=atoi(m_per);
per=per*1024;//单位变为字节
if(per>=total)
{
MessageBox("分割后的文件大于或等于分割前的!重新设置。","错误,重新设置",MB_ICONERROR);
return;
}
CFile fsource,ftarget;
CStdioFile hebing;
if(!fsource.Open (m_sorcepath,CFile::modeRead))
{
MessageBox("打开原文件时失败!","打开文件失败",MB_ICONERROR);
return;
}
int index,index1=0;//index为生成文件得个数,index1为生成每个文件时要循环得次数
int houzhui=0;//生成文件得后缀名
////////////////
//计算大循环需要的次数
if(total%per==0)
index=total/per;
else index=total/per+1;
/////////////////////////
BYTE buffer[4096];//分配4k大小的缓冲区
///////////////////////////////////////////////////
//主循环体
CString m_source;//临时设置的生成文件名字的存储地方
char s[20];
int ncount;
long shengyu;//每次小循环不足4k的部分
shengyu=per%4096;
CString hebingwenjian=m_savepath+filename+".bat";
if(!hebing.Open (hebingwenjian,CStdioFile::modeCreate|CFile::modeWrite))
{
MessageBox("创建合并执行程序时失败!","写文件失败",MB_ICONERROR);
hebing.Close ();
return;
}

while(index!=0)
{
//计算生成每个小文件需要的循环次数,这个次数比实际的要少一次
index1=per/4096;
///////////////////////////////
itoa(houzhui,s,10);
m_source=m_savepath+filename;
m_source+=s;
houzhui++;
if(!ftarget.Open (m_source,CFile::modeCreate|CFile::modeWrite))
{
MessageBox("写文件时失败!","写文件失败",MB_ICONERROR);
ftarget.Close ();
return;
}
while(index1!=0)
{
ncount=fsource.Read (buffer,4096);
ftarget.Write (buffer,ncount);
index1--;
}

if(ncount!=0)
{
ncount=fsource.Read (buffer,shengyu);
ftarget.Write (buffer,ncount);
}
if ((index-1)!=0)
hebingneirong=hebingneirong + m_source + "/b+";
else hebingneirong=hebingneirong + m_source + "/b";
index--;
ftarget.Close ();
}
fsource.Close ();
UpdateData(TRUE);
hebingneirong=hebingneirong+ " " + m_savepath + filename;
hebing.WriteString (hebingneirong);
hebing.Close ();
MessageBox("恭喜,分割成功!","恭喜",MB_ICONINFORMATION);
}

16,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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