论坛交流
首页办公自动化| 网页制作| 平面设计| 动画制作| 数据库开发| 程序设计| 全部视频教程
应用视频: Windows | Word2007 | Excel2007 | PowerPoint2007 | Dreamweaver 8 | Fireworks 8 | Flash 8 | Photoshop cs | CorelDraw 12
编程视频: C语言视频教程 | HTML | Div+Css布局 | Javascript | Access数据库 | Asp | Sql Server数据库Asp.net  | Flash AS
当前位置 > 文字教程 > C语言程序设计教程
Tag:新手,函数,指针,数据类型,对象,Turbo,入门,运算符,数组,结构,二级,,tc,游戏,试题,问答,编译,视频教程

合并文件程序

文章类别:C语言程序设计 | 发表日期:2008-9-24 14:43:29

 /*** 文件合并 ***/

 /*** 
               运行程序时,假如编绎成的可执行文件名为fadd.exe
               则 命令行:例如 fadd file#nnn
      主意:输入" file#nnn " ,而不是 " file#nnn.001 " ***/
 /*** 当分快文件少于 32 块时,可以不用此程序,
        直接运行分割时生成的披拷贝文件即可 ***/

 #include<stdio.h>
 main(int argc,char **argv)
  {
   FILE *fp_read,*fp_write;
   int buffer=0,i,len,pc_fn=1;
   char *fn_in,fn_out[50],*p=".001",ch='#';
   if (argc==1)
    {
     printf ("\n ERROR! you fogot enter the file name   ( file#nnn )\n");
     exit (0);
    }
   fn_in=argv[1];
   i=0;               /*** file#nnn ---> file.nnn 得到目标文件名 ***/
   while (*(fn_in+i))
    {
     if (*(fn_in+i)=='#') *(fn_out+i)='.'; else *(fn_out+i)=*(fn_in+i); i++;
    }
   *(fn_out+i)='\0';
   strcat (fn_in,p); len=strlen (fn_in);  /*** file#nnn ---> file#nnn.01 ***/
   if ((fp_read=fopen (fn_in,"rb"))==NULL)   /*** 检测块文件是否存在***/
    { printf ("\n ERROR! the file \" %s \" not exsits\n",fn_in); exit (0); }

    /*** 检测目标文件是否已经存在。假如存在,交出"控制权" ***/

   if ((fp_write=fopen(fn_out,"rb"))!=NULL)
    {
     fclose (fp_write);
     printf ("\n OVERWRITE the file \" %s \"  (Y/N)?",fn_out);
     while (ch!='N'&&ch!='n'&&ch!='Y'&&ch!='y')
      {
       ch=getche();
       if (ch=='Y'||ch=='y') break;
       if (ch=='N'||ch=='n') { printf ("\n"); exit (0); }
      }
     printf ("\n");
    }

    /*** 合并 ***/   /*** 第一个块文件已在前面检测时打开 ***/

   fp_write=fopen(fn_out,"wb");  /*** 建立目标文件 ***/
   while (fp_read)        /*** 块文件不能被打开 (不存在 ) 时,停下 ***/
    {
     fread (&buffer,1,1,fp_read);
     while (!feof(fp_read))
      {
       fwrite (&buffer,1,1,fp_write); fread (&buffer,1,1,fp_read);
      }
     fclose (fp_read);
     pc_fn++;
     if (pc_fn%10==0&&pc_fn%100!=0)
      { *(fn_in+len-2)+=1; *(fn_in+len-1)-=9; }
      else if (pc_fn%100!=0) *(fn_in+len-1)+=1;
     if (pc_fn%100==0) { *(fn_in+len-3)+=1; *(fn_in+len-2)-=9; *(fn_in+len-1)-=9; }
      fp_read=fopen(fn_in,"rb");
    }
   fclose (fp_read);  fclose (fp_write);
  printf ("\n OK! the file \" %s \"  be created successfuly\n",fn_out);
  printf ("\n %d  files been added\n",pc_fn-1);
 }

视频教程列表
文章教程搜索
 
C语言程序设计推荐教程
C语言程序设计热门教程
看全部视频教程
购买方式/价格
购买视频教程: 咨询客服
tel:15972130058