//-- PRM Parsing public List <RecipeConfigKnsPrm> KNSParaPARSE(string sDirPath, string recipeName) { //string BODY_MGR_CODE = DateTime.Now.ToString("yyyyMMddHHmmss") + SequenceGeneratorGlobal.GetInstance().Next().ToString("0000"); //string sDirPath = string.Empty; System.IO.DirectoryInfo DI = null; string fileExtension = string.Empty; string fileRead = string.Empty; string fileName = string.Empty; string groupid = string.Empty; string wireMaster = string.Empty; string masterxValue = string.Empty; string masteryValue = string.Empty; string masteryUnit = string.Empty; string units = string.Empty; string[] fileSplit; RecipeConfigKnsPrm recipeConfig = null; ArrayList REFList = new ArrayList(); ArrayList groupIdList = new ArrayList(); List <RecipeConfigKnsPrm> RecipeParaList = new List <RecipeConfigKnsPrm>(); ArrayList RecipeWireList = new ArrayList(); #region //-- 1. 이름변경 'Recipename.tgz', 2. TGZ 압축해제(untgz_RECIPENAME) //DI = new System.IO.DirectoryInfo(filePath); //string tgzFileName = filePath + recipeName + ".tgz"; //foreach (var item in DI.GetFiles()) //{ // if (item.Name.Equals(recipeName)) // { // System.IO.File.Copy(filePath + recipeName, tgzFileName, true); // break; // } //} //sDirPath = filePath + "untgz_" + recipeName + "\\"; //DI = new DirectoryInfo(sDirPath); //if (DI.Exists == false) //{ // DI.Create(); //} //FIleCompact.UnTgz(tgzFileName, sDirPath); // Directory.Delete(tgzFileName, true); //fileExtension = string.Empty; //-- 3. Parameter(.PRM) Group ID = .WIR //DI = null; #endregion DI = new System.IO.DirectoryInfo(sDirPath); foreach (var item in DI.GetFiles()) { if (item.Extension == ".WIR") //if (item.Extension == ".PHY") { try { fileSplit = null; groupIdList = new ArrayList(); fileExtension = item.Name; fileRead = File.ReadAllText(sDirPath + fileExtension); fileSplit = fileRead.Replace("\r", "").Split('\n'); for (int i = 0; i < fileSplit.Length; i++) { if (fileSplit[i].Contains(".PRM")) { string[] groupIdSplit = fileSplit[i].Split(' '); if (groupIdSplit[0].Equals("group") && groupIdSplit[1].Contains(".PRM")) { groupIdList.Add(groupIdSplit[0] + groupIdSplit[3] + ":" + groupIdSplit[1]); } } } fileRead = null; fileSplit = null; } catch (Exception ex) { fileRead = null; fileSplit = null; } } } for (int i = 0; i < groupIdList.Count; i++) //Get parameter { fileSplit = groupIdList[i].ToString().Split(':'); fileName = fileSplit[1]; groupid = fileSplit[0]; try { fileRead = File.ReadAllText(sDirPath + fileSplit[1]); fileSplit = fileRead.Split('\n'); for (int j = 15; j < fileSplit.Length; j++) { recipeConfig = new RecipeConfigKnsPrm(); recipeConfig.FILE_NAME = fileName; recipeConfig.GROUP_ID = groupid; recipeConfig.WB_TYPE = "P"; if (fileSplit[j].Contains("=")) { string[] paraSplit = fileSplit[j].ToString().Replace(" ", ",").Split(','); List <string> paraRefactoring = new List <string>(); //paraRefactoring.Add(group_id); foreach (string str in paraSplit) { if (!string.IsNullOrEmpty(str) && !str.Equals("=")) { paraRefactoring.Add(str); } } //# symbol = value units sys_type parm_type class min max default //recipeConfig.ITEM_ID = paraRefactoring[0]; //recipeConfig.PARA_VALUE = paraRefactoring[1]; //recipeConfig.PARA_MIN = paraRefactoring[6]; //recipeConfig.PARA_MAX = paraRefactoring[7]; //recipeConfig.PARA_DEF = paraRefactoring[8]; recipeConfig.ITEM_ID = paraRefactoring[0]; recipeConfig.PARA_VALUE = paraRefactoring[1]; if (paraRefactoring[2].Equals("no_units")) { recipeConfig.ITEM_UNIT = ""; } else { recipeConfig.ITEM_UNIT = paraRefactoring[2]; } recipeConfig.PARA_sys_type = paraRefactoring[3]; recipeConfig.PARA_param_type = paraRefactoring[4]; recipeConfig.PARA_CLASS = paraRefactoring[5]; recipeConfig.PARA_MIN = paraRefactoring[6]; recipeConfig.PARA_MAX = paraRefactoring[7]; recipeConfig.PARA_DEF = paraRefactoring[8]; RecipeParaList.Add(recipeConfig); } } fileSplit = null; fileRead = null; recipeConfig = null; } catch (Exception ex) { fileSplit = null; fileRead = null; recipeConfig = null; } } return(RecipeParaList); }
private void dataGridViewPara_CellValueChanged(object sender, DataGridViewCellEventArgs e) { //-- Revision row Data if (Global.FilePath.Contains("KNS")) { int colindex = e.ColumnIndex; RecipeConfigKnsPrm revision = Global.KnsParaList[e.RowIndex]; //-- 범위 검사 if (e.ColumnIndex == 4) { if (Convert.ToInt32(revision.PARA_VALUE) > Convert.ToInt32(revision.PARA_MAX) || Convert.ToInt32(revision.PARA_VALUE) < Convert.ToInt32(revision.PARA_MIN)) { MessageBox.Show("out of range."); return; } } //-- changeKnsParaList 의 중복 검사 if (Global.changeKnsParaList.Count == 0) { Global.changeKnsParaList.Add(revision); } else { List <int> dblIndx = new List <int>(); //-- set check list for (int i = 0; i < Global.changeKnsParaList.Count; i++) { string checkGroupItem = Global.changeKnsParaList[i].GROUP_ID + "/" + Global.changeKnsParaList[i].ITEM_ID; string revisionGroupItem = revision.GROUP_ID + "/" + revision.ITEM_ID; if (checkGroupItem == revisionGroupItem) { dblIndx.Add(i); } } if (dblIndx.Count == 0) { Global.changeKnsParaList.Add(revision); } else { foreach (int removeIndex in dblIndx) { Global.changeKnsParaList.RemoveAt(removeIndex); Global.changeKnsParaList.Add(revision); } } dblIndx = null; } revision = null; //-- Revision flag if (Global.changeKnsParaList.Count != 0 || Global.changeKnsWireList.Count != 0) { lblStatus.Text = "Revision"; } } else if (Global.FilePath.Contains("SKW")) { } }