<MFC>搜索

从一个文本中找到关键字,读出关键字行首的索引值,在另一个文本中找出相同的索引值并输出行来:

char chKey[MAX_PATH];            //关键字

char chReadLine[MAX_PATH];          //读关键字,从第一个文本

char chFindLine[MAX_PATH];          //读索引值,从第二个文本

bool bReadFlag,bFindFlag;            //判断

FILE *pRFile,*pFFile,*pWFile;           //文件指针

pRFile = fopen("d:\read.txt","r");        //打开文件

pFFile = fopen("d:\find.txt","r");

pWFile = fopen("d:\write.txt","w");

if(NULL == pRFile || NULL == pFFile || NULL == pWFile)      //判断指针

{

  exit(0);

}

strcpy(chKey,"Key");            //复制关键字

while(!feof(pRFile))              //读到句尾

{

  bReadFlag = (NULL == fgets(chReadLine,sizeof(chReadLine),pRFile))?TRUE:FALSE;               //读行

  if(bReadFlag)

    return;

  bFindFlag = (NULL != strstr(chReadLine,chKey))?TRUE:FALSE;                                             //查找

  

  while(bFindFlag)

  {

    int i;

    while(chReadLine != ' ')      //读取行首的信息

               i++;

    chReadLine[i] = 0;           //截取行首的信息

    while(!feof(pFFile))

    {

      bReadFlag =(NULL == fgets(chFindLine,sizeof(chFindLine),pFFile))?TRUE:FALSE;

      if(bReadFlag)

        return;

      bFindFlag = (NULL != strstr(chFindLine,chReadLine))?TRUE:FALSE;

      if(bFindFlag)

      {

         fputs(chFindLine,pWFile);                                                                    //输出

         break;

      }

    }

    }

  }  

  pRFile.Close();

  pFFile.Close();

  pWFile.Close();

}

原文地址:https://www.cnblogs.com/virgil/p/3798357.html