学vc也几个星期了 总想写个小小的东西出来

但却担心自己懂的还太少

刚好带做项目老师给我出了个题目

就是写个能分割文件的小冬冬

并要我2个星期完成  于是便恨下心开始了

想不到不到一星期就完成了 哈哈 偷笑一下

其实是个非常非常简单东西

非常非常的没什么技术含量 .`.`.`.`

不过写完后也觉得成才了许多

看来以后要多写写

期间曾多次遇到难点而且csdn询问

在此谢谢在csdn为我解答各位仁兄 使我能顺利完成

现把代码一并贴出来 给向我一样的初学者参考参考

此代码没用异常检测 功能代码突出 刚好适合小菜阅读

高手们见笑了

/*=========================================================================================
  名称:CutFile
  作者:幻刃(Lsaint)
  版本:1.0
  功能:★将目标目标文件切割为一系列指定大小的小文件
            ★将切割后的小文件重新组合为源文件
  备注:此代码为突出可读性 为实现异常检测的功能
           也未考虑源文件过大或切割后块数过多的问题   =========================================================================================*/
void CspDlg::OnBnClickedButton1() //切割文件
{
 UpdateData();

CFile file1(sFile,CFile::modeReadWrite|CFile::shareDenyNone);  // 打开源文件
 CFile file2;

DWORD fileposition=file1.GetPosition();//文件读写位置
 DWORD fileremaind=file1.GetLength();   //源文件大小

CString dFilename[21];                 //文件名数组
 CString num;                           //文件号码
 sFile=file1.GetFilePath();             //源路径

void*  buffer=malloc(pSize);                // 设置 缓存区

for(int i=0;i<=20;i++)
 {
  num.Format(_T("%d"),i);                  // _T ..  2005默认用UNICODE编码.... 
  dFilename[i]=sFile+num;
 }

int n=fileremaind/pSize+1;
 for(int j=0;j<n;j++)
 {
  file2.Open(dFilename[j],CFile::modeCreate|CFile::modeWrite|CFile::shareDenyNone,0);
  file1.Seek(fileposition,CFile::begin);

if(fileremaind<pSize)  //最后一块文件大小用取余获得
  {pSize=fileremaind%pSize;}

file1.Read(buffer,pSize);//读
  file2.Write(buffer,pSize);//写

fileposition=fileposition+pSize;
  fileremaind=fileremaind-pSize;

file2.Close();

}

file1.Close();

// TODO: 在此添加控件通知处理程序代码
}

void CspDlg::OnBnClickedButton2()//选择要切割的文件
{
 CFileDialog dlg(1,0,0,4|2,0,0,0);
 if(dlg.DoModal()==IDOK)
 {
  sFile=dlg.GetPathName();
  UpdateData(0);
 }

}

void CspDlg::OnBnClickedButton3()// 选择输出文件夹
{
 
 TCHAR pszBuffer[_MAX_PATH];
 BROWSEINFO bi;  LPITEMIDLIST pidl;
 bi.hwndOwner = NULL;
 bi.pidlRoot = NULL;
 bi.pszDisplayName = pszBuffer;
 bi.lpszTitle = _T("选择输出路径");
 bi.ulFlags = BIF_RETURNFSANCESTORS | BIF_RETURNONLYFSDIRS;
 bi.lpfn = NULL;
 bi.lParam = 0;
 if((pidl = SHBrowseForFolder(&bi)) != NULL)
 {
  if(SHGetPathFromIDList(pidl, pszBuffer))
  {
   CString strTemp(pszBuffer);   dFile = strTemp;
   if (dFile.GetLength() <= 1)
   {    
   }
   else if (dFile.Right(1) != _T("//"))  
    dFile += _T("//");
  }
 }

UpdateData(0);       //显示

}

void CspDlg::OnBnClickedButton4()  //合并
{
 UpdateData();

CFile file1;
 CFile file2;//(零)
 
 file1.Open(sFile.Left(sFile.GetLength()-1),CFile::modeReadWrite|CFile::modeCreate);

//创建分割前的文件(整)
 CString num;
 CString name;

for(int i=0;i<20;i++)
 {
   num.Format(_T("%d"),i);  //后缀数字
   name=sFile.Left(sFile.GetLength()-1)+num; //顺序读取文件名
  
 if(file2.Open(name,CFile::modeRead) )    //存在则打开分割后文件
 {
  void*  buffer=malloc(file2.GetLength());//分配缓存               
  file2.Read(buffer,file2.GetLength());   //读取数据  
  file1.Write(buffer,file2.GetLength());  //写入数据

file2.Close();
 }// End if//
 }// End for//
 file1.Close();  // 关闭文件
}//End Lsaint

第一次用vc写的文件切割小软件_CutFile相关推荐

  1. python文件分发_python 写一个文件分发小程序

    一.概述 该小程序实现从源端到目标端的文件一键拷贝,源端和目标段都在一台电脑上面,只是目录不同而已 二.参数文件说明 1. settings.txt的说明 a. 通过配置settings.txt,填源 ...

  2. 2008-2013年写的10个小软件

    01. Delphi - PhotoManager.rar 02. Delphi - 大杀器.rar 03. Delphi - 简单模拟考试系统.rar 04. Delphi - 系统安全管理007. ...

  3. 批量重命名文件名称小软件

    说在前面 先扯会,如果不是Android开发的,要使用本小软件,可以直接到下面正题 在Android开发中,有时会遇到大量文件需要重命名的情况,特别是一些图片文件.有两个同学遇到过这种情况,我暂时还没 ...

  4. vc不能添加文件的小工具

    用于修复 VC6.0打开文件时出错退出的插件, 1: 下载一个FileTool软件(是个压缩包),下载后通过vc运行编译生成一个dll文件,然后把此文件拷贝到vc安装目录下Program Files\ ...

  5. VC 写 TXT 文件分割器 附代码

    TXT文件分割器主要将很大的TXT文档分割成预定大小的文档 主要通过cfile类来实现 这就是最后的效果. 选择路径主要通过cfiledlg类来实现 // TODO: Add your control ...

  6. 可以打开mdb文件的小软件

    下载地址: http://dl-sh-ocn-1.pchome.net/09/rh/DatabaseBrowser.zip 转载于:https://www.cnblogs.com/bobo-show/ ...

  7. 刚学c++window编程没多久写了一个整人小软件有些bug

    #include<windows.h> #include<iostream> #include<fstream> using namespace std; int ...

  8. 文件处理小程序(包含哈夫曼文件压缩-解压等 C语言)

    文末有源代码 文件压缩.解压.加密(异或加密).解密功能等都实现了,但是处理后文件命名有点不合理,采用了加前缀的方法得到处理后的文件名,应该是改变后缀名. 应该这种更好:test.txt --- &g ...

  9. Java---设计模式app小软件汇总应用

    写了一个app小软件,重点不在于软件,软件bug挺多,也没去修改. 这个小软件只是为了更好的说明和了解设计模块而做的. Java 程序设计–包结构 Java程序设计的系统体系结构很大一部分都体现在包结 ...

  10. java切割文件_Java如何将大文件切割成小文件

    运用Java编写代码将一个大文件切割成指定大小的小文件 思路: 对已知文件进行切割操作 –> 得到多个碎片文件 使用: 1. 1个字节输入流 –> 读取已知文件中的数据 2. 多个字节输出 ...

最新文章

  1. java opencv calcCovarMatrix 计算协方差矩阵
  2. 思科网络技术学院CCNA教程
  3. 线程运行程序c语言,理解线程1 C语言示例的程序
  4. 每一种创伤,都是一种成熟
  5. 【技术解决方案】优化FFmpeg编码器参数设置
  6. 学习编程的方法与建议
  7. ROS推荐链接:UNIX/LINUX专为初学者的教程和命令 http://www.ee.surrey.ac.uk/Teaching/Unix/
  8. matlab封闭曲线拟合 (针对一些列离散点)
  9. keil5手动下载并添加pack
  10. DCOS(centos 7.4/7.6)
  11. 11.绘制统计图形——误差棒图
  12. 2022年知网研学“研究生科研素养提升”系列公益讲座题库答案分享一波
  13. 国王的金币for循环
  14. 【EXE PE】了解pe段--PE结构详解
  15. 塔望3W消费战略全案丨绿力冬瓜茶 三十年饮料老品牌,两年复兴战全国
  16. 左轮吉他-吉他初学者很不错的教程【优酷视频教程】
  17. 电商直通车主图设计教程
  18. Hadoop | MapReduce之 WordCount词频统计
  19. 专访丁衣:极路由这一年
  20. 红帽OpenShift容器平台3.3提高DevOps采用率和应用扩展能力

热门文章

  1. linux命令怎么查看日志文件,linux查看日志文件命令
  2. wgs84坐标系经纬度投影_南方cass坐标转经纬度_坐标转经纬度软件
  3. 普中科技51单片机开发板
  4. 集成运算放大器之积分电路搭建
  5. Linux 系统启动与服务管理
  6. python gps显示_MicroPython-GPS教程之TPYBoardv702控制5110显示当前经纬度
  7. rs232接口_终于有人把常用的三种通讯方式:RS485、RS232、RS422讲明白了
  8. 微软雅黑字体,百度云下载
  9. Win10 安装 Rational Rose
  10. php机器人聊天对话框,PHP实现QQ聊天机器人