沧桑不尽
无穷的沧桑,不尽的落叶

先写个简单的文件合并函数(非常简单,贴上来纯粹为了给记忆中加点东西,看到的人不要骂我),有时间写个捆绑的程序

 

// CommbineFile.cpp : 定义控制台应用程序的入口点。
//

//#include "stdafx.h"

#include 
"stdio.h"
#include 
"stdlib.h"
#include 
"windows.h"
bool CombineFile(char *sourceFile,char *attachFile,char *destFile)
{
    FILE 
*fdSourceFile = NULL;
    FILE 
*fdAttachFile = NULL;
    
int nSourceFileSize=0,nAttachFileSize=0;
    fdSourceFile 
= fopen(sourceFile,"r");
    fdAttachFile 
= fopen(attachFile,"r");
    
if (!fdSourceFile || !fdAttachFile)
    {
        
return false;
    }
    
if (fseek(fdSourceFile,0L,SEEK_END))
    {
        
return false;
    }
    nSourceFileSize 
= ftell(fdSourceFile);
    fseek(fdSourceFile,
0L,SEEK_SET);
    
if (fseek(fdAttachFile,0L,SEEK_END))
    {
        
return false;
    }
    nAttachFileSize 
= ftell(fdAttachFile);
    fseek(fdAttachFile,
0L,SEEK_SET);

    
char *sBuf = (char *)malloc((nSourceFileSize+1)*sizeof(char));
    
if (!sBuf)
    {
        
return false;
    }
    
char *aBuf = (char *)malloc((nAttachFileSize+1)*sizeof(char));
    
if (!aBuf)
    {
        
return false;
    }

    memset(sBuf,
0,nSourceFileSize+1);//not need,I think
    memset(aBuf,0,nAttachFileSize+1);

    
int nSourceRead=0,nAttachRead=0;
    nSourceRead 
= fread(sBuf,sizeof(char),nSourceFileSize,fdSourceFile);
    nAttachRead 
= fread(aBuf,sizeof(char),nAttachFileSize,fdAttachFile);

    FILE 
* fdDestFile = fopen(destFile,"w");
    
if (!fdDestFile)
    {
        
return false;
    }
    fwrite(sBuf,
sizeof(char),nSourceFileSize,fdDestFile);
    fwrite(aBuf,
sizeof(char),nAttachFileSize,fdDestFile);

    fclose(fdAttachFile);
    fclose(fdDestFile);
    fclose(fdSourceFile);
    free(sBuf);
    free(aBuf);

    
return true;
}

int main(int argc, char *argv[])
{
    CombineFile(
"D:\\1.txt","D:\\2.txt","D:\\3.txt");
    
return 0;
}

 

 

posted on 2009-12-26 17:58  沧桑不尽  阅读(420)  评论(0编辑  收藏  举报