打开文件;
while(文件未结束)
{
   char* p = 读一行;
   int count = 字段个数;
   while(count > 0)
  {
     CString str = "";
     while(*p !=(空格或Tab))
     {
      str  += *p++;
     }//现在str中已经读出一个字段,其它的就Imitate吧
     count--;
     ……
  }
}
关闭文件;

解决方案 »

  1.   

    to ghz:
    这么快啊,先谢啦!我试试先
      

  2.   

    有没有什么函数直接读出一行再赋给一个CString啊,我想这样可能比较快吧
      

  3.   

    to ghz:
    还有在吗?
    你写的:char* p=读一行;
    是用什么方法读出一行啊?
      

  4.   

    CFile file(……);
    CArchive ar(&file,CArchive::load);
    ar.Serialize();
    CString line;
    while(ar.ReadString(line))
    {……
    }
    //不知道有没有语法错误,如有请多多包涵
      

  5.   

    Sorry,把ar.Serialize();那一行去掉,搞混了
      

  6.   

    各位大侠帮忙看看下面的代码有什么问题呀!谢谢
    我想实现的功能如题:就是将某目录下所有文本文件格式化成自己的格式的数据程序开始正常,转了几个文件后老是提示:
    First-chance exception in convert.exe (KERNEL32.DLL): 0xC0000005: Access Violation.
    是不是我用的那个数组有问题啊?麻烦各位高手帮帮忙
    源代码如下:
    void FormatData(LPCTSTR lpszFileName)
    {
        CString line[600]; //用于保存文本文件中的每一行
        CFile src,dst;
        src.Open(lpszFileName,CFile::modeRead);
        dst.Open("format.txt",CFile::modeWrite);
        
        int num=1; //行号
        CArchive ar(&src,CArchive::load);
        while(ar.ReadString(line[num]))
        {
              num++;
        }    //.........对数据的格式化处理    dst.Close();
        ar.Close();
        src.Close();
    }调用如下:WIN32_FIND_DATA FindFileData;
    CString path="";
    HANDLE hFind=NULL;
    hFind=FindFirstFile("*.txt",&FindFileData);
    if(hFind==INVALID_HANDLE_VALUE)
    {
    MessageBox("没有找到文件");
    return;
    }
    path.Format("d:\\data\\%s",FindFileData.cFileName);
    FormatData(path);
    while(FALSE!=FindNextFile(hFind,&FindFileData))
    { path.Format("d:\\data\\%s",FindFileData.cFileName);
    FormatData(path);
    }
      

  7.   

    数组没问题,可能是,呵呵,600是不是有点儿小啊,Debug一下。
    By the way,//.........对数据的格式化处理   干吗不放在循环里呢,读一行处理一行,也就用不着CString数组了
      

  8.   

    还有没有在啊,呵呵,我还怕太大呢,我原来是1000的,后面改小的
    我放在数组里是因为这样我比较方便格式化呀我调试过了提示arccore.cpp 461行不行了,对应的源代码是在CArchive::Abort()里的,我想是跟CArchive有关,但不知具体原因出在哪里?昨晚还没睡觉呢,现在要先回去,等下午再来
      

  9.   

    文件读书不用这么麻烦的,只要只个主要函数就可以搞定了,我劝你们还是不要用CArchive类来读写了,你看这么容易出错,我介绍几个函函给你:
    FILE *fp;
    fp=fopen("path\filename","rwb..");
    fgets(fp,buf,size);//读一行,放在buf里
    fputs(fp,buf,size);//写一行
    读出的buf爱怎么处理就怎么处理
      

  10.   

    這時用C的Function fscanf("%i%i%i", &a, &b, &c); 最快.