最近碰到一个问题,要利用空格将类似TXT文件中的字符提取出来,然后重新组成新的文件
文件内容如下: "AB1 CD2 11 22 33 44 55 66 77 88 99"
想提取后组成3个文件内容分别为:"AB1 CD2 11 44 77" 
                              "AB1 CD2 22 55 88"
                              "AB1 CD2 33 66 99"
自己水平有限,写了一些,但是不得要领,盼大虾们相助.
我自己写的一些东西:
 CString pathname;
 CStdioFile file;
file.Open(pathname,CFile::modeRead);
CString FileData;
    file.ReadString(FileData);
FileData.TrimRight();//这里想利用TrimRight把空格右边的去掉,但后面读出来发现还是原来的东西???
MessageBox(FileData);

解决方案 »

  1.   

    FileData = FileData.TrimRight();
      

  2.   

    TrimRight();是去掉字符串右边的空格
    "AB1 CD2 11 22 33 44 55 66 77 88 99" 最右边是99,没有空格所以还是返回原来的
      

  3.   


    VOID类型赋值给CString类型,肯定不行
      

  4.   

    看看下面的程序你应该会明白怎么处理了吧#include <string.h>
    #include <stdio.h>char string[] = "A string\tof ,,tokens\nand some  more tokens";
    char seps[]   = " ,\t\n";
    char *token;int main( void )
    {
       printf( "Tokens:\n" );
     
       // Establish string and get the first token:
       token = strtok( string, seps ); // C4996
       // Note: strtok is deprecated; consider using strtok_s instead
       while( token != NULL )
       {
          // While there are tokens in "string"
          printf( " %s\n", token );      // Get next token: 
          token = strtok( NULL, seps ); // C4996
       }
    }
      

  5.   

    其实楼主需要的是一个以指定字符分隔字符串的函数,有了这个其它所有的都可以做了。
    这样功能的函数有许多帖子,在CSDN中搜素下吧。
      

  6.   

    用strtok分解出各个字段,然后再根据自己的需要进行组合
      

  7.   

    多谢5楼提醒,搜索了一上午,这个贴内容不错http://topic.csdn.net/t/20030913/12/2255645.html
    全文如下:
    我的问题是这样的,   
      文件中有很多字符串,以字符串"啊"分界   
      例如   
      中华人民共和国啊世界大团结啊你好啊什么   
      要获取其中的   
      中华人民共和国   
      世界大团结   
      你好   
      什么   
      怎么办   
      函数的原型为   
      CString   GetString(LPCTSTR   lpszFileName,int   nIndex,LPCTSTR   lpszSubStr);   
        
      lpszFileName为文件名,nIndex为0开始的序号,lpszSubStr为分隔字符串,这里为"啊"   
      有谁能写这段代码啊,谢谢,或者提供一些方法和函数   
      CString   GetString(LPCTSTR   lpszFileName,int   nIndex,LPCTSTR   lpszSubStr)   
      {   
      CFile   cf;   
      if(!cf.Open(lpszFileName,CFile::modeRead))return   "";   
      CString   str;   
      cf.Read(str.GetBuffer(cf.GetLength()),cf.GetLength());   
      cf.Close();   
      str.ReleaseBuffer();   
      int   iFind;   
      int   iSize=strlen(lpszSubStr);   
      for(int   i=0;i<nIndex;++i)   
      {   
      if((iFind=str.Find(lpszSubStr))!=-1)str=str.Mid(iFind+iSize);   
      else   return   "";   
      }   
      if((iFind=str.Find(lpszSubStr))!=-1)return   str.Left(iFind);   
      else   return   str;   
      }