SDC C-Project CF Review 프로그램
LYW
2021-07-08 630eb072cca33a7c633f6429a0b5a531d1b83268
DitGlassRawMessenger/DitGlassRawMessenger/MacroResultFile.cpp
@@ -227,26 +227,43 @@
   char* pReadPoint = NULL;
   char *pStr;
   CString stranelData = "DATA PANEL";
   CString strSubPanelData = "DATA SUBPANEL";
   CString strMaxAvgGray, strMaxPortion;
   while (!feof(pf))
   {
      pStr = fgets(buffer, 1024, pf);
      if (!strncmp(buffer, "DATA,", 5)) continue;
      pStr = fgets(buffer, 1024, pf);
      if (strlen(buffer) <= 0 || pStr == NULL)
         break;
      //else if (!strncmp(buffer, "DATA\tSUBPANEL\t", 14))// 탭 파싱
      else if (!strncmp(buffer, "DATA SUBPANEL ", 14))// 띄어쓰기 파싱
      if (!strncmp(buffer, stranelData, strlen(stranelData)))// 띄어쓰기 파싱
      {
         CakParser paser;
         if (strlen(buffer) <= 0) continue;
         paser.process(buffer);
         paser.process(buffer, " ");
         int nTokNum = paser.getTokNum();
         if (nTokNum < 1) continue;
         if (nTokNum < 42) continue;
         strMaxAvgGray = paser.getTokStr(41);
         strMaxPortion = paser.getTokStr(42);
      }
         if (nTokNum > 0) MacroSubPanel.PRO_IMAGE = paser.getTokStr(20);
         if (nTokNum > 1) MacroSubPanel.AVG_GRAY = atof(paser.getTokStr(21));
         if (nTokNum > 2) MacroSubPanel.PORTION = atof(paser.getTokStr(22));
      if (!strncmp(buffer, strSubPanelData, strlen(strSubPanelData)))// 띄어쓰기 파싱
      {
         CakParser paser;
         if (strlen(buffer) <= 0) continue;
         paser.process(buffer, " ");
         int nTokNum = paser.getTokNum();
         if (nTokNum < 31) continue;
         MacroSubPanel.PRO_IMAGE = paser.getTokStr(20);
         MacroSubPanel.AVG_GRAY_0 = paser.getTokStr(21);
         MacroSubPanel.PORTION_0 = paser.getTokStr(22);
         MacroSubPanel.AVG_GRAY_1 = paser.getTokStr(24);
         MacroSubPanel.PORTION_1 = paser.getTokStr(25);
         MacroSubPanel.AVG_GRAY_2 = paser.getTokStr(27);
         MacroSubPanel.PORTION_2 = paser.getTokStr(28);
         MacroSubPanel.AVG_GRAY_3 = paser.getTokStr(30);
         MacroSubPanel.PORTION_3 = paser.getTokStr(31);
         vecMacroSubPanel.push_back(MacroSubPanel);
      }
@@ -260,23 +277,18 @@
   {
      pGrmMura= pShared->GetCellData(i);
      
      //pGrmMura->clear();
      strcpy(pGrmMura->m_strProImage, m_vecMacroSubPanel[i].PRO_IMAGE);
      pGrmMura->m_fAvgGray = m_vecMacroSubPanel[i].AVG_GRAY;
      pGrmMura->m_fPortion = m_vecMacroSubPanel[i].PORTION;
      strcpy(pGrmMura->m_strProImage, m_vecMacroSubPanel[i].PRO_IMAGE.GetBuffer(0));
      strcpy(pGrmMura->m_strAvgGray_0, m_vecMacroSubPanel[i].AVG_GRAY_0.GetBuffer(0));
      strcpy(pGrmMura->m_strPortion_0, m_vecMacroSubPanel[i].PORTION_0.GetBuffer(0));
      strcpy(pGrmMura->m_strAvgGray_1, m_vecMacroSubPanel[i].AVG_GRAY_1.GetBuffer(0));
      strcpy(pGrmMura->m_strPortion_1, m_vecMacroSubPanel[i].PORTION_1.GetBuffer(0));
      strcpy(pGrmMura->m_strAvgGray_2, m_vecMacroSubPanel[i].AVG_GRAY_2.GetBuffer(0));
      strcpy(pGrmMura->m_strPortion_2, m_vecMacroSubPanel[i].PORTION_2.GetBuffer(0));
      strcpy(pGrmMura->m_strAvgGray_3, m_vecMacroSubPanel[i].AVG_GRAY_3.GetBuffer(0));
      strcpy(pGrmMura->m_strPortion_3, m_vecMacroSubPanel[i].PORTION_3.GetBuffer(0));
   }
   float Max_AVG_GRAY = m_vecMacroSubPanel[0].AVG_GRAY;
   float Max_PORTION = m_vecMacroSubPanel[0].PORTION;
   for (int i = 1; i < m_vecMacroSubPanel.size(); ++i)
   {
      Max_AVG_GRAY = max(Max_AVG_GRAY, m_vecMacroSubPanel[i].AVG_GRAY);    //큰 값을 다시 largest에 대입
      Max_PORTION = max(Max_PORTION, m_vecMacroSubPanel[i].PORTION);
   }
   pShared->GetGlassData()->m_fMaxAvgGray = Max_AVG_GRAY;
   pShared->GetGlassData()->m_fMaxPortion = Max_PORTION;
   strcpy(pShared->GetGlassData()->m_strMaxAvgGray, strMaxAvgGray.GetBuffer(0));
   strcpy(pShared->GetGlassData()->m_strMaxPortion, strMaxPortion.GetBuffer(0));
   m_bReadSuccess = TRUE;
   return TRUE;