|  |  |  |  | #include "StdAfx.h"
 | 
					
						
							|  |  |  |  | #include "WorkFileMgr.h"
 | 
					
						
							|  |  |  |  | #include "GlobalDefine.h"
 | 
					
						
							|  |  |  |  | #include "TemplateMgr.h"
 | 
					
						
							|  |  |  |  | #include "WorkFileLable.h"
 | 
					
						
							|  |  |  |  | #include "LogMgr.h"
 | 
					
						
							|  |  |  |  | #include "ModuleDeviceMgr.h"
 | 
					
						
							|  |  |  |  | #include "ModuleDrawMgr.h"
 | 
					
						
							|  |  |  |  | #include "ObjComponentMgr.h"
 | 
					
						
							|  |  |  |  | #include "MsgBox.h"
 | 
					
						
							|  |  |  |  | #include "ProductMgr.h"
 | 
					
						
							|  |  |  |  | #include "GlobalFunction.h"
 | 
					
						
							|  |  |  |  | #include "LaserDeviceMgr.h"
 | 
					
						
							|  |  |  |  | #include "MarkAreaMgr.h"
 | 
					
						
							|  |  |  |  | #include "FileMgr.h"
 | 
					
						
							|  |  |  |  | #include "OptoWaveLaserMgr.h"
 | 
					
						
							|  |  |  |  | #include "Laser.h"
 | 
					
						
							|  |  |  |  | #include "PlatformXY.h"
 | 
					
						
							|  |  |  |  | #include "CommonFlowMgr.h"
 | 
					
						
							|  |  |  |  | #include "GlobalDrawMgr.h"
 | 
					
						
							|  |  |  |  | #include "ProgramCutMgr.h"
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | CString CWorkFileMgr::m_CurOpenFile; | 
					
						
							|  |  |  |  | CWorkFileMgr::CWorkFileMgr(void) | 
					
						
							|  |  |  |  | { | 
					
						
							|  |  |  |  | } | 
					
						
							|  |  |  |  | CWorkFileMgr::~CWorkFileMgr(void) | 
					
						
							|  |  |  |  | { | 
					
						
							|  |  |  |  | } | 
					
						
							|  |  |  |  | #if 1
 | 
					
						
							|  |  |  |  | //<2F>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>
 | 
					
						
							|  |  |  |  | bool CWorkFileMgr::IsOpenFile() | 
					
						
							|  |  |  |  | { | 
					
						
							|  |  |  |  |       if(m_CurOpenFile == "") | 
					
						
							|  |  |  |  |       { | 
					
						
							|  |  |  |  |            CMsgBox MsgBox; | 
					
						
							|  |  |  |  |            MsgBox.Show("δ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>!"); | 
					
						
							|  |  |  |  |            return false; | 
					
						
							|  |  |  |  |       } | 
					
						
							|  |  |  |  |       return true; | 
					
						
							|  |  |  |  | } | 
					
						
							|  |  |  |  | #include "ClientMgr.h"
 | 
					
						
							|  |  |  |  | void CWorkFileMgr::OnOpenFile() | 
					
						
							|  |  |  |  | { | 
					
						
							|  |  |  |  |     TCHAR szFilters[]=("MAK <20>ļ<EFBFBD>(*.mak)|*.mak");	 | 
					
						
							|  |  |  |  |     CFileDialog dlg(TRUE,("mak"),NULL,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,szFilters); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 	/*CFileMgr fg;
 | 
					
						
							|  |  |  |  | 	CString exeDir = fg.GetWorkPath(); | 
					
						
							|  |  |  |  | 	dlg.m_ofn.lpstrInitialDir = exeDir; //ָ<><D6B8><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>*/
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |     if(dlg.DoModal()==IDOK) | 
					
						
							|  |  |  |  |     {		 | 
					
						
							|  |  |  |  |          CString FilePath = dlg.GetPathName(); | 
					
						
							|  |  |  |  | 		 gClientMgr->SendCmd_OpenFile(FilePath); | 
					
						
							|  |  |  |  |          ReadWorkFile(FilePath); | 
					
						
							|  |  |  |  |          //<2F><>¼<EFBFBD><C2BC>ǰ<EFBFBD><EFBFBD><F2BFAAB5>ļ<EFBFBD><C4BC><EFBFBD>------------------------------------------
 | 
					
						
							|  |  |  |  |          SaveFileName(FilePath); | 
					
						
							|  |  |  |  |          //<2F><>¼<EFBFBD><C2BC>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | 
					
						
							|  |  |  |  |          CFileMgr FileMgr; | 
					
						
							|  |  |  |  |          gProgramCutMgr->SetCurOpenFileName(FileMgr.GetFileNameFromPath(FilePath,true)); | 
					
						
							|  |  |  |  | 		 gProgramCutMgr->SetCurOpenFileFullName(FilePath); | 
					
						
							|  |  |  |  |     } | 
					
						
							|  |  |  |  | } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | //<2F><>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֣<EFBFBD><D6A3><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | 
					
						
							|  |  |  |  | void CWorkFileMgr::SaveFileName(CString FileName) | 
					
						
							|  |  |  |  | { | 
					
						
							|  |  |  |  |      m_CurOpenFile = FileName; | 
					
						
							|  |  |  |  |      GetCurDocPtr()->SetTitle(m_CurOpenFile); | 
					
						
							|  |  |  |  | } | 
					
						
							|  |  |  |  | //<2F><><EFBFBD>浱ǰ<E6B5B1><EFBFBD><F2BFAAB5>ĵ<EFBFBD>
 | 
					
						
							|  |  |  |  | void CWorkFileMgr::OnSaveFile() | 
					
						
							|  |  |  |  | { | 
					
						
							|  |  |  |  |      if(m_CurOpenFile == "")//<2F>µ<EFBFBD><C2B5>ļ<EFBFBD>
 | 
					
						
							|  |  |  |  |      { | 
					
						
							|  |  |  |  |           //<2F><><EFBFBD><EFBFBD>Ϊ
 | 
					
						
							|  |  |  |  |           OnSaveFileAs(); | 
					
						
							|  |  |  |  |      } | 
					
						
							|  |  |  |  |      else//<2F><><EFBFBD>浱ǰ<E6B5B1><EFBFBD><F2BFAAB5>ļ<EFBFBD>
 | 
					
						
							|  |  |  |  |      { | 
					
						
							|  |  |  |  |            SaveFile(m_CurOpenFile); | 
					
						
							|  |  |  |  |            CMsgBox MsgBox; | 
					
						
							|  |  |  |  |            MsgBox.Show(m_CurOpenFile+"   <20><><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD>!"); | 
					
						
							|  |  |  |  |      } | 
					
						
							|  |  |  |  | } | 
					
						
							|  |  |  |  | //<2F><><EFBFBD><EFBFBD>Ϊ
 | 
					
						
							|  |  |  |  | void CWorkFileMgr::OnSaveFileAs() | 
					
						
							|  |  |  |  | { | 
					
						
							|  |  |  |  |       TCHAR szFilters[]=("MAK <20>ļ<EFBFBD>(*.mak)|*.mak"); | 
					
						
							|  |  |  |  |       CFileDialog dlg(FALSE,("mak"),("MarkFile"),OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,szFilters); | 
					
						
							|  |  |  |  |       if(dlg.DoModal()==IDOK) | 
					
						
							|  |  |  |  |       { | 
					
						
							|  |  |  |  |            SaveFile(dlg.GetPathName()); | 
					
						
							|  |  |  |  |       } | 
					
						
							|  |  |  |  | } | 
					
						
							|  |  |  |  | void CWorkFileMgr::SaveFile(CString FileName) | 
					
						
							|  |  |  |  | { | 
					
						
							|  |  |  |  |     SaveWorkFile(FileName); | 
					
						
							|  |  |  |  |     SaveFileName(FileName); | 
					
						
							|  |  |  |  | } | 
					
						
							|  |  |  |  | #endif
 | 
					
						
							|  |  |  |  | #if 1
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | void CWorkFileMgr::SaveWorkFile(CString FilePath) | 
					
						
							|  |  |  |  | { | 
					
						
							|  |  |  |  |       vector<CLab> LabVec;//<2F>洢<EFBFBD><E6B4A2><EFBFBD>б<EFBFBD>ǩ<EFBFBD><C7A9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | 
					
						
							|  |  |  |  |       //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD>Ҫ<EFBFBD>洢<EFBFBD><E6B4A2>ģ<EFBFBD><C4A3>
 | 
					
						
							|  |  |  |  |       //<2F>Ѽ<EFBFBD><D1BC><EFBFBD><EFBFBD>б<EFBFBD>ǩ
 | 
					
						
							|  |  |  |  |       gTemplateMgr->SaveWorkFile(LabVec); | 
					
						
							|  |  |  |  |       //gCommonFlowMgr->SaveWorkFile(LabVec);
 | 
					
						
							|  |  |  |  |       SaveWorkFileExt(FilePath,LabVec); | 
					
						
							|  |  |  |  | } | 
					
						
							|  |  |  |  | //<2F><><EFBFBD><EFBFBD><EFBFBD>и<EFBFBD>
 | 
					
						
							|  |  |  |  | void CWorkFileMgr::SaveCutParFile(CString FilePath) | 
					
						
							|  |  |  |  | { | 
					
						
							|  |  |  |  |       vector<CLab> LabVec;//<2F>洢<EFBFBD><E6B4A2><EFBFBD>б<EFBFBD>ǩ<EFBFBD><C7A9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | 
					
						
							|  |  |  |  |       //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD>Ҫ<EFBFBD>洢<EFBFBD><E6B4A2>ģ<EFBFBD><C4A3>
 | 
					
						
							|  |  |  |  |       //<2F>Ѽ<EFBFBD><D1BC><EFBFBD><EFBFBD>б<EFBFBD>ǩ
 | 
					
						
							|  |  |  |  |       gCommonFlowMgr->SaveWorkFile(LabVec); | 
					
						
							|  |  |  |  |       SaveWorkFileExt(FilePath,LabVec); | 
					
						
							|  |  |  |  | } | 
					
						
							|  |  |  |  | //<2F><><EFBFBD>б<EFBFBD>ǩд<C7A9><D0B4><EFBFBD>ļ<EFBFBD>
 | 
					
						
							|  |  |  |  | void CWorkFileMgr::SaveWorkFileExt(CString FilePath,vector<CLab> &LabVec) | 
					
						
							|  |  |  |  | { | 
					
						
							|  |  |  |  |       CFile file(FilePath,CFile::modeReadWrite|CFile::modeCreate); | 
					
						
							|  |  |  |  |       CArchive ar(&file,CArchive::store); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |       size_t LabCnt = LabVec.size(); | 
					
						
							|  |  |  |  |       ar<<LabCnt;//<2F><>ǩ<EFBFBD>ĸ<EFBFBD><C4B8><EFBFBD>
 | 
					
						
							|  |  |  |  |       vector<CLab>::iterator iter = LabVec.begin(); | 
					
						
							|  |  |  |  |       vector<CLab>::iterator iter_end = LabVec.end(); | 
					
						
							|  |  |  |  |       for(;iter!=iter_end;iter++) | 
					
						
							|  |  |  |  |       { | 
					
						
							|  |  |  |  |            (*iter).Serialize(ar); | 
					
						
							|  |  |  |  |       } | 
					
						
							|  |  |  |  | } | 
					
						
							|  |  |  |  | #endif
 | 
					
						
							|  |  |  |  | #if 1
 | 
					
						
							|  |  |  |  | //<2F><><EFBFBD><EFBFBD>obj <20>ļ<EFBFBD>
 | 
					
						
							|  |  |  |  | void CWorkFileMgr::OpenObjFile() | 
					
						
							|  |  |  |  | { | 
					
						
							|  |  |  |  |     TCHAR szFilters[]=("OBJ <20>ļ<EFBFBD>(*.obj)|*.obj"); | 
					
						
							|  |  |  |  |     CFileDialog dlg(TRUE,("obj"),("ObjFile"),OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,szFilters); | 
					
						
							|  |  |  |  |     if(dlg.DoModal()==IDOK) | 
					
						
							|  |  |  |  |     { | 
					
						
							|  |  |  |  |          gDraw->SetbDelOldObj(false);//<2F><>Ҫɾ<D2AA><C9BE>ԭ<EFBFBD><D4AD><EFBFBD><EFBFBD>obj
 | 
					
						
							|  |  |  |  |          ReadObjTemplateFile(dlg.GetPathName()); | 
					
						
							|  |  |  |  |          GetCurViewPtr()->RefreshView(); | 
					
						
							|  |  |  |  |          gDraw->SetbDelOldObj(true); | 
					
						
							|  |  |  |  |     } | 
					
						
							|  |  |  |  | } | 
					
						
							|  |  |  |  | //<2F><><EFBFBD><EFBFBD>obj <20>ļ<EFBFBD>
 | 
					
						
							|  |  |  |  | void CWorkFileMgr::SaveObjFile() | 
					
						
							|  |  |  |  | { | 
					
						
							|  |  |  |  |       TCHAR szFilters[]=("OBJ <20>ļ<EFBFBD>(*.obj)|*.obj"); | 
					
						
							|  |  |  |  |       CFileDialog dlg(FALSE,("obj"),("ObjFile"),OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,szFilters); | 
					
						
							|  |  |  |  |       if(dlg.DoModal()==IDOK) | 
					
						
							|  |  |  |  |       { | 
					
						
							|  |  |  |  |            SaveObjTemplateFile(dlg.GetPathName()); | 
					
						
							|  |  |  |  |       } | 
					
						
							|  |  |  |  | } | 
					
						
							|  |  |  |  | //ͨ<><CDA8><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>obj <20>ļ<EFBFBD>(<28><><EFBFBD><EFBFBD>·<EFBFBD><C2B7>)
 | 
					
						
							|  |  |  |  | void CWorkFileMgr::ReadObjFileByName(CString FileName) | 
					
						
							|  |  |  |  | { | 
					
						
							|  |  |  |  |        CFileMgr FileMgr; | 
					
						
							|  |  |  |  |        CString FilePath;//<2F><><EFBFBD><EFBFBD>·<EFBFBD><C2B7>
 | 
					
						
							|  |  |  |  |        FileMgr.GetFullFilePath(FilePath,FileName); | 
					
						
							|  |  |  |  |        ReadObjTemplateFile(FilePath); | 
					
						
							|  |  |  |  | } | 
					
						
							|  |  |  |  | //ͨ<><CDA8><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>obj <20>ļ<EFBFBD>(<28><><EFBFBD><EFBFBD>·<EFBFBD><C2B7>)
 | 
					
						
							|  |  |  |  | void CWorkFileMgr::ReadObjTemplateFile(CString FilePath) | 
					
						
							|  |  |  |  | { | 
					
						
							|  |  |  |  |       ReadWorkFile(FilePath); | 
					
						
							|  |  |  |  | } | 
					
						
							|  |  |  |  | //ֻ<><D6BB><EFBFBD><EFBFBD>obj ģ<><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | 
					
						
							|  |  |  |  | void CWorkFileMgr::SaveObjTemplateFile(CString FilePath) | 
					
						
							|  |  |  |  | { | 
					
						
							|  |  |  |  |       vector<CLab> LabVec;//<2F>洢<EFBFBD><E6B4A2><EFBFBD>б<EFBFBD>ǩ<EFBFBD><C7A9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | 
					
						
							|  |  |  |  |       //<2F>Ѽ<EFBFBD><D1BC><EFBFBD><EFBFBD>б<EFBFBD>ǩ
 | 
					
						
							|  |  |  |  |       gTemplateMgr->SaveWorkFile(LabVec); | 
					
						
							|  |  |  |  |       //<2F><><EFBFBD>б<EFBFBD>ǩд<C7A9><D0B4><EFBFBD>ļ<EFBFBD>
 | 
					
						
							|  |  |  |  |       SaveWorkFileExt(FilePath,LabVec); | 
					
						
							|  |  |  |  | } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | #endif
 | 
					
						
							|  |  |  |  | #if 1
 | 
					
						
							|  |  |  |  | void CWorkFileMgr::ReadWorkFile(CString FilePath) | 
					
						
							|  |  |  |  | { | 
					
						
							|  |  |  |  |       //<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>----------------------------------------------------------
 | 
					
						
							|  |  |  |  |       vector<CLab> LabVec; | 
					
						
							|  |  |  |  |       ReadWorkFileExt(FilePath,LabVec); | 
					
						
							|  |  |  |  |       if(LabVec.empty()) | 
					
						
							|  |  |  |  |           return; | 
					
						
							|  |  |  |  |       //<2F><><EFBFBD><EFBFBD>ÿ<EFBFBD><C3BF>ģ<EFBFBD><C4A3>------------------------------------------------------------
 | 
					
						
							|  |  |  |  |       CLabVecRang LabVecRang(LabVec,0,LabVec.size()-1); | 
					
						
							|  |  |  |  |       vector<CLabVecRang> LabVecRangVec; | 
					
						
							|  |  |  |  |        | 
					
						
							|  |  |  |  |       SeparateStrVec(LabVecRang,LabVecRangVec,LAB_MODULE_START,LAB_MODULE_END); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |       //<2F><><EFBFBD>δ<EFBFBD><CEB4><EFBFBD>ÿ<EFBFBD><C3BF>ģ<EFBFBD><C4A3>---------------------------------------------------
 | 
					
						
							|  |  |  |  |       vector<CLabVecRang>::iterator iter = LabVecRangVec.begin(); | 
					
						
							|  |  |  |  |       vector<CLabVecRang>::iterator iter_end = LabVecRangVec.end(); | 
					
						
							|  |  |  |  |       for(;iter!=iter_end;iter++) | 
					
						
							|  |  |  |  |       { | 
					
						
							|  |  |  |  |             if(gModuleDrawMgr.ReadWorkFile(*iter)) | 
					
						
							|  |  |  |  |                 continue;//<2F><><EFBFBD><EFBFBD><EFBFBD>ظ<EFBFBD><D8B8><EFBFBD>ȡ
 | 
					
						
							|  |  |  |  |             gModuleDeviceMgr.ReadWorkFile(*iter); | 
					
						
							|  |  |  |  |       } | 
					
						
							|  |  |  |  | } | 
					
						
							|  |  |  |  | void CWorkFileMgr::ReadWorkFileExt(CString FilePath,vector<CLab> &LabVec) | 
					
						
							|  |  |  |  | { | 
					
						
							|  |  |  |  |       CFile file; | 
					
						
							|  |  |  |  |       if(file.Open(FilePath,CFile::modeRead)) | 
					
						
							|  |  |  |  |       { | 
					
						
							|  |  |  |  |             CArchive ar(&file,CArchive::load); | 
					
						
							|  |  |  |  |             size_t LabCnt; | 
					
						
							|  |  |  |  |             ar>>LabCnt;//<2F>ȶ<EFBFBD>ȡ<EFBFBD><C8A1>ǩ<EFBFBD>ĸ<EFBFBD><C4B8><EFBFBD>
 | 
					
						
							|  |  |  |  |             for(size_t i=0;i<LabCnt;i++) | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                  CLab Lab; | 
					
						
							|  |  |  |  |                  Lab.Serialize(ar); | 
					
						
							|  |  |  |  |                  LabVec.push_back(Lab); | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |             file.Close(); | 
					
						
							|  |  |  |  |       } | 
					
						
							|  |  |  |  |       else | 
					
						
							|  |  |  |  |       { | 
					
						
							|  |  |  |  |            gLogMgr->WriteDebugLog("<EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD>ȡʧ<EFBFBD><EFBFBD>", _LOG_ERROR); | 
					
						
							|  |  |  |  |       } | 
					
						
							|  |  |  |  | } | 
					
						
							|  |  |  |  | //<2F><>LabVecRang <20>и<EFBFBD><D0B8><EFBFBD>StrLabStart <20><>StrLabEnd <20><>ǩ<EFBFBD><C7A9>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>str <20><><EFBFBD>浽LabVecRangVec
 | 
					
						
							|  |  |  |  | void CWorkFileMgr::SeparateStrVec(CLabVecRang &LabVecRang,vector<CLabVecRang> &LabVecRangVec,LAB_TYPE StrLabStart,LAB_TYPE StrLabEnd) | 
					
						
							|  |  |  |  | { | 
					
						
							|  |  |  |  |      size_t StartCnt = 0;//<2F><><EFBFBD><EFBFBD>Ƕ<EFBFBD><EFBFBD><D7B5><EFBFBD><EFBFBD><EFBFBD>
 | 
					
						
							|  |  |  |  |      size_t StartIdx = 0; | 
					
						
							|  |  |  |  |      size_t EndIdx = 0; | 
					
						
							|  |  |  |  |       | 
					
						
							|  |  |  |  |      size_t Start = LabVecRang.GetStart(); | 
					
						
							|  |  |  |  |      size_t End = LabVecRang.GetEnd()+1; | 
					
						
							|  |  |  |  |      for(size_t i=Start;i<End;i++) | 
					
						
							|  |  |  |  |      {  | 
					
						
							|  |  |  |  |           if(LabVecRang.GetLabType(i)==StrLabStart) | 
					
						
							|  |  |  |  |           { | 
					
						
							|  |  |  |  |                if(StartCnt==0)//ֻ<>е<EFBFBD>һ<EFBFBD><D2BB><EFBFBD>ż<EFBFBD>¼
 | 
					
						
							|  |  |  |  |                { | 
					
						
							|  |  |  |  |                    StartIdx = i+1;//<2F><>¼<EFBFBD><C2BC><EFBFBD>뿪ʼλ<CABC><CEBB>
 | 
					
						
							|  |  |  |  |                } | 
					
						
							|  |  |  |  |                StartCnt++; | 
					
						
							|  |  |  |  |           } | 
					
						
							|  |  |  |  |           if(LabVecRang.GetLabType(i)==StrLabEnd) | 
					
						
							|  |  |  |  |           { | 
					
						
							|  |  |  |  |                if(StartCnt==1) | 
					
						
							|  |  |  |  |                { | 
					
						
							|  |  |  |  |                     EndIdx = i-1;//Ŀ<><C4BF><EFBFBD><EFBFBD>ȥ<EFBFBD><C8A5><EFBFBD>жϵ<D0B6><CFB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǩ
 | 
					
						
							|  |  |  |  |                     //if(EndIdx>StartIdx)//<2F><>Ҫ<EFBFBD>Ѽ<EFBFBD><D1BC>յķ<D5B5>Χ
 | 
					
						
							|  |  |  |  |                     { | 
					
						
							|  |  |  |  |                           CLabVecRang Rang(LabVecRang.GetVec(),StartIdx,EndIdx); | 
					
						
							|  |  |  |  |                           LabVecRangVec.push_back(Rang); | 
					
						
							|  |  |  |  |                     } | 
					
						
							|  |  |  |  |                } | 
					
						
							|  |  |  |  |                StartCnt--; | 
					
						
							|  |  |  |  |           } | 
					
						
							|  |  |  |  |      } | 
					
						
							|  |  |  |  | } | 
					
						
							|  |  |  |  | //<2F><>StrVec <20><><EFBFBD>Һͱ<D2BA>ǩLabStr ƥ<><C6A5><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1>ǩ<EFBFBD><C7A9>ֵ,û<><C3BB>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD>""
 | 
					
						
							|  |  |  |  | CLab CWorkFileMgr::FindLab(CLabVecRang &LabVecRang,LAB_TYPE LabStr) | 
					
						
							|  |  |  |  | { | 
					
						
							|  |  |  |  |       CLab ret; | 
					
						
							|  |  |  |  |       size_t Start = LabVecRang.GetStart(); | 
					
						
							|  |  |  |  |       size_t End = LabVecRang.GetEnd()+1; | 
					
						
							|  |  |  |  |       for(size_t i=Start;i<End;i++) | 
					
						
							|  |  |  |  |       { | 
					
						
							|  |  |  |  |             if(LabVecRang.GetLabType(i)==LabStr) | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                   ret = LabVecRang.GetLab(i); | 
					
						
							|  |  |  |  |                   break; | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |       } | 
					
						
							|  |  |  |  |       return ret; | 
					
						
							|  |  |  |  | } | 
					
						
							|  |  |  |  | #endif
 |