C写的 文件分割 //老早就说要上传的,可是一直没机会,对以前的承诺说声"对不起"

verybigmouthz 2002-04-11 01:26:22
/***********************************************************************************************/
/* 文件分割的编制 filecut.c */
/* 思路: 将文件依据参数来划分成若干个文件,以达到文件分割的目的 */
/* 文件的合并:利用dos的copy命令作一个批处理cat.bat */
/***********************************************************************************************/
//程序入口:
//char filename[256]:文件名称
//long int cutsize:分割文件块的大小
//程序返回
//0文件倒写成功
//1打开欲倒写文件操作失败
//2打开临时文件操作失败
//注意事项:
//程序使用临时文件为:jz_cut.tmp,如在操作文件同目录下有该文件,则覆盖!
//编制时间:
//2000.4TC2.0初稿,2002.4BCB5.5终稿
//LeftRight:
//BigMouthZ编制,谨请广大编程爱好者们使用!
//慎重申明:
//本人不负责一切因使用本程序而产生的后果!请勿用于非法用途!
//联系方式:
//E_Mail: verybigmouthz@sohu.com
//---------------------------------------------------------------------------
#pragma hdrstop
//---------------------------------------------------------------------------
#pragma argsused
# include "stdio.h"
# include "string.h"
# include "stdlib.h"
# include "math.h"
main(int argc,char *argv[])
{ FILE *fp,*fg;
char filename[256],createfile[256];
long int cutsize;
printf("Input cut filename:\n"); scanf("%s",filename);
printf("Input Cut K_Bytes:\n"); scanf("%ld",&cutsize);

cutsize*=1024l;
if (cutsize==0) return 1;
if ( (fp=fopen(filename,"rb"))==NULL) return 2;
char tmp[6],tempfile[14];
strcpy(tmp,"0"); strcpy(tempfile,"_c_");
strcat(tempfile,tmp); strcat(tempfile,".tmp");

char ch;
long int m,tmpnum;
ch=fgetc(fp);
while(1)
{ fg=fopen(tempfile,"wb");
m=0l;
while ( (!feof(fp)) && (m++ < cutsize))
{
fputc(ch,fg); ch=fgetc(fp);
}
if (feof(fp)) {fclose(fp); fclose(fg); break;}
fclose(fg);
tmpnum=atoi(tmp); itoa(++tmpnum,tmp,10);
strcpy(tempfile,"_c_");
strcat(tempfile,tmp); strcat(tempfile,".tmp");
}
/******************************************************************/
int rowsize=25,x_break=0,i=0,j=0,k;
fp=fopen("_cut.bat","wb");
while(!x_break)
{ if (tmpnum < rowsize) { rowsize = tmpnum;x_break=1;}
else tmpnum -= rowsize;
fputs("\r\n@copy /b ",fp);
for(k = 0;k < rowsize; k++)
{ itoa(i++,tmp,10); strcpy(tempfile,"_c_");
strcat(tempfile,tmp); strcat(tempfile,".tmp+");
fputs(tempfile,fp);
}
itoa(i++,tmp,10); strcpy(tempfile,"_c_");
strcat(tempfile,tmp); strcat(tempfile,".tmp ");
fputs(tempfile,fp);
itoa(j++,tmp,10); strcpy(tempfile,"_s_");
strcat(tempfile,tmp); strcat(tempfile,".tmp");
fputs(tempfile,fp); fputs(">nul",fp);
}

fputs("\r\n@copy /b ",fp);

for(k=0;k<j-1;k++)
{ itoa(k,tmp,10); strcpy(tempfile,"_s_");
strcat(tempfile,tmp); strcat(tempfile,".tmp+");
fputs(tempfile,fp);
}
itoa(k,tmp,10); strcpy(tempfile,"_s_");
strcat(tempfile,tmp); strcat(tempfile,".tmp ");
fputs(tempfile,fp); fputs(filename,fp);
fputs(">nul",fp);
fputs("\r\n@del _c_*.tmp",fp);
fputs("\r\n@del _s_*.tmp",fp);
fputs("\r\n@del _cut.bat",fp);
fclose(fp);
return 0;
}
//---------------------------------------------------------------------------
...全文
19 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
Transformer发轫于NLP(自然语言处理),并跨界应用到CV(计算机视觉)领域。 Swin Transformer是基于Transformer的计算机视觉骨干网,在图像分类、目标检测、实例分割、语义分割等多项下游CV应用中取得了SOTA的性能。该项工作也获得了ICCV 2021顶会最佳论文奖。本课程将手把手地教大家使用labelme标注和使用Swin Transformer训练自己的数据集进行图片和视频的实例分割。  本课程将介绍Transformer及在CV领域的应用、Swin Transformer的原理。 本课程以汽车驾驶场景图片和视频开展项目实践:对汽车行驶场景中的路坑、车、车道线进行物体标注和实例分割。  课程在Windows和Ubuntu系统上分别做项目演示。包括:安装软件环境、安装Pytorch、安装Swin-Transformer-Object-Detection、标注自己的数据集、准备自己的数据集、数据集格式转换(Python脚本完成)、修改配置文件、训练自己的数据集、测试训练出的网络模型、性能统计、日志分析。  本课程提供项目的数据集和相关Python程序文件。相关课程: 《Transformer原理与代码精讲(PyTorch)》https://edu.csdn.net/course/detail/36697《Transformer原理与代码精讲(TensorFlow)》https://edu.csdn.net/course/detail/36699《ViT(Vision Transformer)原理与代码精讲》https://edu.csdn.net/course/detail/36719《DETR原理与代码精讲》https://edu.csdn.net/course/detail/36768《Swin Transformer实战目标检测:训练自己的数据集》https://edu.csdn.net/course/detail/36585《Swin Transformer实战实例分割:训练自己的数据集》https://edu.csdn.net/course/detail/36586《Swin Transformer原理与代码精讲》 https://download.csdn.net/course/detail/37045

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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