<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 != '\t') //读取行首的信息
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();
}