using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; namespace P066.Data { class ReadFile { #region 读取白点表格 public List GetWhiteFile(string[] allLines) { var dataList = new List(); var nametemp = allLines[1].Split(',')[0]; var resulttemp = allLines[1].Split(',')[1]; string Ptr = ""; for (int i = 1; i < allLines.Length; i++) { var data = allLines[i].Split(','); if (data[3]=="NG") //只读取NG信息 { if (data[0] == "") { data[0] = nametemp; data[1] = resulttemp; data[10] = Ptr; } try { //将地7、8列中选最大像素点 data[6] = SelectMaxPiont(data[6]); data[7] = SelectMaxPiont(data[7]); dataList.Add(new ResultData() { TimeTip = data[0].Split('-')[0], Lensnumber = Convert.ToInt32(data[0].Split('-')[2].Substring(6, 1)), FileName=data[0].Split('-')[2].Substring(0,9)+"白点", ImageFileName = data[0], JudgmentResult = data[1] == "OK" ? "OK" : "NG", Result = data[3] == "OK", Probability = Convert.ToDouble(data[4]), Uncertainty = Convert.ToDouble(data[5]), Height = Convert.ToDouble(data[6]), Width = Convert.ToDouble(data[7]), X = Convert.ToDouble(data[8].Replace("#", "").Replace("-", "")), Y = Convert.ToDouble(data[9].Replace("#", "").Replace("-", "")), DefectType = data[3] == "OK" ? "OK" : "白点", PostTreatmentResults = data[10], }); ; ; nametemp = data[0]; resulttemp = data[1]; Ptr = data[10]; } catch (Exception) { dataList.Add(new ResultData() { TimeTip = data[0].Split('-')[0], Lensnumber = Convert.ToInt32(data[0].Split('-')[2].Substring(6, 1)), FileName = data[0].Split('-')[2].Substring(0, 9) + "白点", ImageFileName = data[0], JudgmentResult = data[1] == "OK" ? "OK" : "NG", Result = data[3] == "OK", }); ; ; } } } return dataList; } #endregion #region 读取刮白表格 public List GetWhiteningFile(string[] allLines) { var dataList = new List(); var nametemp = allLines[1].Split(',')[0]; var resulttemp = allLines[1].Split(',')[1]; for (int i = 1; i < allLines.Length; i++) { var data = allLines[i].Split(','); if (data[3] == "NG") //只读取NG信息 { if (data[0] == "") { data[0] = nametemp; data[1] = resulttemp; } try { //将地7、8列中选最大像素点 data[6] = SelectMaxPiont(data[6]); data[7] = SelectMaxPiont(data[7]); dataList.Add(new ResultData() { TimeTip = data[0].Split('-')[0], Lensnumber = Convert.ToInt32(data[0].Split('-')[2].Substring(6, 1)), FileName = data[0].Split('-')[2].Substring(0, 9) + "刮白", ImageFileName = data[0], JudgmentResult = data[1] == "OK" ? "OK" : "NG", Result = data[3] == "OK", Probability = Convert.ToDouble(data[4]), Uncertainty = Convert.ToDouble(data[5]), Height = Convert.ToDouble(data[6]), Width = Convert.ToDouble(data[7]), X = Convert.ToDouble(data[8].Replace("#", "").Replace("-", "")), Y = Convert.ToDouble(data[9].Replace("#", "").Replace("-", "")), DefectType = data[3] == "OK" ? "OK" : "刮白", PostTreatmentResults = "", }); ; ; nametemp = data[0]; resulttemp = data[1]; } catch (Exception) { dataList.Add(new ResultData() { TimeTip = data[0].Split('-')[0], Lensnumber = Convert.ToInt32(data[0].Split('-')[2].Substring(6, 1)), FileName = data[0].Split('-')[2].Substring(0, 9) + "刮白", ImageFileName = data[0], JudgmentResult = data[1] == "OK" ? "OK" : "NG", Result = data[3] == "OK", PostTreatmentResults = "", }); ; ; } } } return dataList; } #endregion #region 读取划伤表格 public List GetScratchPartFile(string[] allLines) { var dataList = new List(); var nametemp = allLines[1].Split(',')[0]; var resulttemp = allLines[1].Split(',')[1]; for (int i = 1; i < allLines.Length; i++) { var data = allLines[i].Split(','); if (data[3] == "NG") //只读取NG信息 { if (data[0] == "") { data[0] = nametemp; data[1] = resulttemp; } try { if (data[1] != "OK") { dataList.Add(new ResultData() { TimeTip = data[0].Split('-')[0], Lensnumber = Convert.ToInt32(data[0].Split('-')[2].Substring(6, 1)), FileName = data[0].Split('-')[2].Substring(0, 9) + "划伤", ImageFileName = data[0], JudgmentResult = "NG", Result = data[3] == "OK", Probability = Convert.ToDouble(data[4]), Uncertainty = Convert.ToDouble(data[5]), Height = Convert.ToDouble(data[6]), Width = Convert.ToDouble(data[7]), X = Convert.ToDouble(data[8].Replace("#", "").Replace("-", "")), Y = Convert.ToDouble(data[9].Replace("#", "").Replace("-", "")), DefectType = data[3], PostTreatmentResults = "", }); ; ; nametemp = data[0]; resulttemp = data[1]; } } catch (Exception) { dataList.Add(new ResultData() { TimeTip = data[0].Split('-')[0], Lensnumber = Convert.ToInt32(data[0].Split('-')[2].Substring(6, 1)), FileName = data[0].Split('-')[2].Substring(0, 9) + "划伤", ImageFileName = data[0], JudgmentResult = data[1] == "OK" ? "OK" : "NG", Result = data[3] == "OK", }); ; ; } } } return dataList; } #endregion #region 读取镀膜破损表格 public List GetZoomPartFile(string[] allLines) { var dataList = new List(); for (int i = 1; i < allLines.Length; i++) { var data = allLines[i].Split(','); if (data[1]!="OK") { dataList.Add(new ResultData() { TimeTip = data[0].Split('-')[0], Lensnumber = Convert.ToInt32(data[0].Split('-')[2].Substring(6, 1)), FileName = data[0].Split('-')[2].Substring(0, 9) + "镀膜破损", ImageFileName = data[0], JudgmentResult = "NG", DefectType = data[1], PostTreatmentResults = "", }); ; ; } } return dataList; } #endregion #region 读取一个时间戳 public ListTimeStamp(FileInfo fileInfo) { var allLines = File.ReadAllLines(fileInfo.FullName, Encoding.Default); var dataList = new List(); for (int i = 1; i < allLines.Length; i++) { var data = allLines[i].Split(','); if (data[0].Length>0) { dataList.Add(data[0].Split('-')[0]); } } return dataList; } #endregion ////将地7、8列中选最大像素点 private string SelectMaxPiont(string Data) { var data = Data.Split('#').ToList(); data.Remove(""); var temp = Convert.ToInt32(data[0]); for (int i = 0; i < data.Count; i++) { if (Convert.ToInt32(data[i]) > temp) { temp = Convert.ToInt32(data[i]); } } return Convert.ToString(temp); } } public class ResultData { public string TimeTip = ""; public string JudgmentResult = ""; public string ImageFileName = ""; public bool Result = true; public int Lensnumber = 0; public double Probability = 0; public double Uncertainty = 0; public double Height = 0; public double Width = 0; public double X = 0; public double Y = 0; public double ex = 0; public string location = ""; public double angle = 0; public double R = 0; public string DefectType = ""; public string PostTreatmentResults = ""; public string FileName = ""; } }