例如:2个实际大小为2k的txt文件,合并成6k的txt文件,份2端,每段3k,空白处填FF,不知道读取2个小文件,以及合并应该怎么实现,没有思路,希望高手可以给出代码研究,我很菜。

解决方案 »

  1.   

    以2进制方式读写,不足6k才补写f,使用CFile类很简单
      

  2.   

    用CFlie怎么写能给个大概的代码学习下吗?我刚学,而且任务又比较急,谢谢了.
      

  3.   

    CFile a("a.text", CFile::modeWrite);
    CFile b("b.text", CFile::modeRead);
    a.SeekToEnd();
    int aLen = a.GetLength();
    int bLen = b.GetLength();char* aBuf = new char[oLen];
    char* bBuf = new char[iLen];ini a=asize-aBuf;
    b.Read(aBuf, iLen);
    a.Write(aBuf, iLen);.....???
    delete[] aBuf;
    delete[] bBuf;
    关键时怎么填充FF呢?
      

  4.   

    分两段是什么意思?是第一个文件后面写ff满3k后再写入第二个文件,还是先写第二个文件,然后填ff满6k?
      

  5.   

    怪我我表述的不清, 是第一个文件后面写ff满3k后再写入第二个文件,写满后再填ff
    要用到这个memset(akongBuf,F,asize)往空内存填ff吗?下面的可以实现吗?请指教int asize,bsize; a文件指定大小,b文件指定大小(K)asize=asize*1024;
    bsize=bsize*1024;CFile a(“a.text”, CFile::modeWrite);
    CFile b(“b.text”, CFile::modeRead);
    a.SeekToEnd();
    int bLen=b.GetLength();
    int aLen=a.GetLength();
    asize=asize-aLen;
    bsize=bsize-bLen;
    char* akongBuf = new char[asize];
    memset(akongBuf,F,asize);
    a.Write(akongBuf,asize);//给a文件未满处写ff
    delete[] akongBuf;
    a.SeekToEnd();
    char* bBuf = new char[bLen];
    b.Read(bBuf, bLen);
    a.Write(bBuf, bLen);//b文件合到了a
    delete[] bBuf;
    char* bkongBuf = new char[bsize];
    b.SeekToEnd();
    memset(bkongBuf,F,bsize);
    b.Write(akongBuf,bsize);合并后在b段后再填ff
    delete[] bkongBuf;