要读取注释,文档里文件是这样的:  ///////////////////////////////////////////
                                // name : xxxx
                                // class : xxx
                                // school: xxx
                                //////////////////////////////////////////
下面还有好多乱七八糟的内容,只需要把name class,school:XXX读出来,写出文件去我现在已经做到打开这个文件,并用readstring一行一行的读,
然后判断 文件名.find("//////")>0
我想逻辑应该是判断有多个"/"时,做个记号,往下读取,取得后去掉name前的//,得到我要的东西,
请高手帮帮我,应该怎么写啊?能详细点吗,我感激不尽

解决方案 »

  1.   

    应该考虑//,/*,*/这些。
    最好是按行读取,用CStdioFile
      

  2.   

    我是用的这个方法啊,是一行一行的读,用while循环是这样读了,但怎么才能把我要的那个内容取出来呢?还要把开头的两个//去掉
      

  3.   

    你每一行读出来,然后每行分析,用strtok这个函数看行不行
      

  4.   

    字符串处理麻烦死了,自己好好看看吧,就是把find的下标记住,然后str.delete
      

  5.   

    先用CStdioFile按行读取.
    如果不考虑性能,你直接在得到的CString里调用Find查找是否有这3个name,class,school中的一个.
    有就解析,没有就跳过.解析的时候你一个一个字符比对就行了.
      

  6.   

    用个变量当作标记 初始为关闭
    一行一行地搜  ////////
    搜到就把标记打开
    搜每行都检查标记,关的时候不做处理,打开的话检查一行是否同时有"//" "class" "name"
    有的话用CString的函数把不需要的部分剔除,保留有用的写到文件去
    ..........
    提供一个思路,写去吧
      

  7.   

    文档里文件是这样的: 
    HOSTNAME={TEST}
    DBSource={SFCDB}
    UserID={EPSN}
    PWD={EPSN}
    CString ConForm::LoadIniFile(CString strParam)
    {
    strParam.TrimLeft();
    strParam.TrimRight();
    char tmp[2048];
    CString strTmp;
    CStdioFile File;
    int st,en;
    if(File.Open("PSN.INI",CFile::modeRead))
    {
    File.Read(tmp,sizeof(tmp));
    strTmp=tmp;
    st=0;st=strTmp.Find(strParam+"={",0)+strParam.GetLength()+2;
    en=0;en=strTmp.Find("}",st+1);
    strTmp=strTmp.Mid(st,en-st);
    File.Close();
    return strTmp;
    }
    else
    {
    MessageBox("Open PSN.ini File Error!","SMO WARNING",MB_ICONSTOP);
    return "";
    }
    }你自己看看可能對你有用!!!
      

  8.   

    while(file.ReadString(str))
    {
    if (!str.IsEmpty())
    {
    if (str.Find("////")>0)

    {
    我已经一行一行读取,下面应该怎么写啊
      

  9.   

    用Parse Generator产生一个词法分析器不就可以了么。
      

  10.   

    这是我以前写的,按这个可以!     
    //打开文件
    CStdioFile out ,out1;
    out1.Open(sFileName, CFile::modeRead);
    //读取文件
    CString strLine = _T("");
    int Txtcount=0;
    while (out1.ReadString(strLine))
    {
    Txtcount++;
    }
    out1.Close();
    CString sr;
    out.Open(sFileName, CFile::modeRead);
    for(int ntxt=0; ntxt<Txtcount;ntxt++)
    {
    out.ReadString(sr);

    }
    out.Close();
      

  11.   

    要对准你的目标找:三个关键词 name,class,school,举个例子,
    读取一行,找关键词,找到了,继续往后找,直到遇到"/"为止。
    把这过程中间的字符串得到即可。
    也就是说从关键词开始,到"/"结束。