| | |
| | | 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); |
| | | } |
| | |
| | | { |
| | | 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; |