如何用c++提取出txt文件中的所有条记录日志并将其中的异常记录单独提取

50 14-04-09 06:35:47;233 FID:btmh_b_balis LID: 231 TID:SMGM_LogTask
001805197 ATP A 0221S000 No valid data at port 1
51 14-04-09 06:35:46;731 FID:btmh_a_balis LID: 167 TID:SMGM_LogTask
001804906 ATP A 000BS081 4 0 BT A->Balise Port2_invalid

 以上述异常信息为例,如何编程进行分析50、51为故障记录(主要看最后一句),并将这两条记录完整提取出来。求一个思路如果可以希望能有程序说明。

你可以读出文本信息,判断fid和lid如果符合错误,就记录下来

  #include ......
    fstream file;
  string line;
  string content;
  file.open(sourcefile);//sourcefile是文件路径
  if(!file)
  {
   g_Log.print(LogLevel_Info,"[SendHttp] open file fail.\n");
  }
  while(getline(file, line,"r")  {
       if(line.strstr("No valid")!=NULL||line.strstr("invalid")!=NULL)print("%s",line);
  }