public void TestLogTransfaseDataTable(FileInfo chosenFile, List <Tlog> tlogs, string zipName) { string fileNameArr = chosenFile.Name.Split('_').First(); List <Tlog> tlogsTest = new List <Tlog>(); LogFileType test; try { if (chosenFile.Name.ToUpper().EndsWith("HTML")) { test = LogFileType.HTML; } else { test = fileNameArr.ToUpper().CastTo <LogFileType>(); } } catch (Exception) { test = LogFileType.OTHER; } try { StringCollection linesCollection = ReadFileIntoStringCollection(chosenFile.FullName); string[] linesArray = new string[linesCollection.Count]; linesCollection.CopyTo(linesArray, 0); int testDate = DateTime.Now.ToString("yyyyMMdd").CastTo <int>(); string sn; switch (test) { case LogFileType.MAIN: foreach (var line in linesArray.Skip(3)) { sn = line.Split('\t')[2]; TestReslut reslut = line.Split('\t')[5].ToUpper().Equals("PASS")?TestReslut.Pass : TestReslut.Fail; tlogsTest.Add(new Tlog() { Sn = sn, TestDate = testDate, ZipFileName = zipName, LogFileName = chosenFile.Name, Path = chosenFile.FullName, LogFileType = LogFileType.MAIN, TestReslut = reslut }); } break; case LogFileType.RECEIVERAMPL: foreach (var line in linesArray.Skip(3)) { sn = line.Split('\t')[2]; TestReslut reslut = line.Split('\t')[5].ToUpper().Equals("PASS") ? TestReslut.Pass : TestReslut.Fail; tlogsTest.Add(new Tlog() { Sn = sn, TestDate = testDate, ZipFileName = zipName, LogFileName = chosenFile.Name, Path = chosenFile.FullName, LogFileType = LogFileType.RECEIVERAMPL, TestReslut = reslut }); } break; case LogFileType.SEC: foreach (var line in linesArray.Skip(3)) { sn = line.Split('\t')[2]; TestReslut reslut = line.Split('\t')[5].ToUpper().Equals("PASS") ? TestReslut.Pass : TestReslut.Fail; tlogsTest.Add(new Tlog() { Sn = sn, TestDate = testDate, ZipFileName = zipName, LogFileName = chosenFile.Name, Path = chosenFile.FullName, LogFileType = LogFileType.SEC, TestReslut = reslut }); } break; case LogFileType.SPEAKERAMPL: foreach (var line in linesArray.Skip(3)) { sn = line.Split('\t')[2]; TestReslut reslut = line.Split('\t')[5].ToUpper().Equals("PASS") ? TestReslut.Pass : TestReslut.Fail; tlogsTest.Add(new Tlog() { Sn = sn, TestDate = testDate, ZipFileName = zipName, LogFileName = chosenFile.Name, Path = chosenFile.FullName, LogFileType = LogFileType.SPEAKERAMPL, TestReslut = reslut }); } break; case LogFileType.副麦: foreach (var line in linesArray.Skip(3)) { sn = line.Split('\t')[4]; TestReslut reslut = line.Split('\t')[5].ToUpper().Equals("PASS") ? TestReslut.Pass : TestReslut.Fail; tlogsTest.Add(new Tlog() { Sn = sn, TestDate = testDate, ZipFileName = zipName, LogFileName = chosenFile.Name, Path = chosenFile.FullName, LogFileType = LogFileType.副麦, TestReslut = reslut }); } break; case LogFileType.听筒: foreach (var line in linesArray.Skip(3)) { sn = line.Split('\t')[4]; TestReslut reslut = line.Split('\t')[5].ToUpper().Equals("PASS") ? TestReslut.Pass : TestReslut.Fail; tlogsTest.Add(new Tlog() { Sn = sn, TestDate = testDate, ZipFileName = zipName, LogFileName = chosenFile.Name, Path = chosenFile.FullName, LogFileType = LogFileType.听筒, TestReslut = reslut }); } break; case LogFileType.扬声器: foreach (var line in linesArray.Skip(3)) { sn = line.Split('\t')[4]; TestReslut reslut = line.Split('\t')[5].ToUpper().Equals("PASS") ? TestReslut.Pass : TestReslut.Fail; tlogsTest.Add(new Tlog() { Sn = sn, TestDate = testDate, ZipFileName = zipName, LogFileName = chosenFile.Name, Path = chosenFile.FullName, LogFileType = LogFileType.扬声器, TestReslut = reslut }); } break; case LogFileType.扬声器右: foreach (var line in linesArray.Skip(3)) { sn = line.Split('\t')[4]; TestReslut reslut = line.Split('\t')[5].ToUpper().Equals("PASS") ? TestReslut.Pass : TestReslut.Fail; tlogsTest.Add(new Tlog() { Sn = sn, TestDate = testDate, ZipFileName = zipName, LogFileName = chosenFile.Name, Path = chosenFile.FullName, LogFileType = LogFileType.扬声器右, TestReslut = reslut }); } break; case LogFileType.扬声器左: foreach (var line in linesArray.Skip(3)) { sn = line.Split('\t')[4]; TestReslut reslut = line.Split('\t')[5].ToUpper().Equals("PASS") ? TestReslut.Pass : TestReslut.Fail; tlogsTest.Add(new Tlog() { Sn = sn, TestDate = testDate, ZipFileName = zipName, LogFileName = chosenFile.Name, Path = chosenFile.FullName, LogFileType = LogFileType.扬声器左, TestReslut = reslut }); } break; case LogFileType.主麦: foreach (var line in linesArray.Skip(3)) { sn = line.Split('\t')[4]; TestReslut reslut = line.Split('\t')[5].ToUpper().Equals("PASS") ? TestReslut.Pass : TestReslut.Fail; tlogsTest.Add(new Tlog() { Sn = sn, TestDate = testDate, ZipFileName = zipName, LogFileName = chosenFile.Name, Path = chosenFile.FullName, LogFileType = LogFileType.主麦, TestReslut = reslut }); } break; case LogFileType.HTML: sn = fileNameArr; tlogsTest.Add(new Tlog() { Sn = sn, TestDate = testDate, ZipFileName = zipName, LogFileName = chosenFile.Name, Path = chosenFile.FullName, LogFileType = LogFileType.HTML, TestReslut = TestReslut.Pass }); break; case LogFileType.OTHER: { sn = fileNameArr; TestReslut reslut = chosenFile.Name.ToUpper().Contains("PASS") ? TestReslut.Pass : TestReslut.Fail; tlogsTest.Add(new Tlog() { Sn = sn, TestDate = testDate, ZipFileName = zipName, LogFileName = chosenFile.Name, Path = chosenFile.FullName, LogFileType = LogFileType.OTHER, TestReslut = reslut }); } break; } } catch (Exception) { throw new Exception("解析文件错误:" + chosenFile.Name); } tlogs.AddRange(tlogsTest); }
public void CpkTransfaseDataTable(FileInfo chosenFile, List <Cpk> cpks, string zipName) { List <Cpk> collection = new List <Cpk>(); string logFile, platForm, projectName, stationName, ip, result, sn, time; string[] timesArr, linesArray; int testDate; int testTime; DateTime readLogDate; StringCollection linesCollection; try { logFile = chosenFile.Name; timesArr = chosenFile.Name.Split('_'); linesCollection = ReadFileIntoStringCollection(chosenFile.FullName); linesArray = new string[linesCollection.Count]; linesCollection.CopyTo(linesArray, 0); sn = timesArr[0]; time = timesArr[1]; testDate = Convert.ToInt32(time.Substring(0, 8)); testTime = Convert.ToInt32(time.Substring(8)); platForm = linesArray[0].Split(':', ';')[1]; // 平台 projectName = linesArray[1].Split(':', ';')[1]; // 项目名 stationName = linesArray[2].Split(':', ';')[1]; // 站点 ip = linesArray[3].Split(':', ';')[1]; // IP result = linesArray[7].Split(':', ';')[1]; // readLogDate = DateTime.Now; } catch (Exception) { throw new Exception("文件名格式不对:" + chosenFile.Name); } foreach (var line in linesArray.Skip(11)) { try { string[] tStrings = line.Split('_', ':', ',', ';'); if (tStrings.Count() == 9) { var testList = tStrings.ToList(); testList.RemoveAt(1); tStrings = testList.ToArray <string>(); } string wgsn = tStrings[0]; // 测试频段 string tch = tStrings[1]; // 信道 string pcl = tStrings[2]; // 功率等级 string testItem = tStrings[3]; // 测试类型(项) double testVal = double.Parse(tStrings[4]); // 测试值 double minVal = double.Parse(tStrings[5]); // 最小值 double maxVal = double.Parse(tStrings[6]); // 最大值 platForm = platForm.ToUpper().Replace(" ", ""); projectName = projectName.ToUpper().Replace(" ", ""); stationName = stationName.ToUpper().Replace(" ", ""); ip = ip.Replace(" ", ""); sn = sn.ToUpper().Replace(" ", ""); TestReslut testReslut = result.ToUpper().Equals("PASS") ? TestReslut.Pass : TestReslut.Fail; wgsn = wgsn.ToUpper().Replace(" ", ""); tch = tch.ToUpper().Replace(" ", ""); pcl = pcl.ToUpper().Replace(" ", ""); testItem = testItem.ToUpper().Replace(" ", ""); logFile = logFile.Replace(" ", ""); zipName = zipName.Replace(" ", ""); collection.Add(new Cpk() { PlatForm = platForm, ProjectName = projectName, Opcode = stationName, Ip = ip, Sn = sn, TestDate = testDate, TestTime = testTime.ToString(), Result = testReslut, Wgsn = wgsn, Tch = tch, Pcl = pcl, TestItem = testItem, TestVal = testVal, MinVal = minVal, MaxVal = maxVal, ReadLogDate = readLogDate, LogFileName = logFile, ZipFileName = zipName }); } catch (Exception) { var log = "log格式不正确[" + line + "]、log[" + logFile + "]"; throw new Exception(log); } } cpks.AddRange(collection); }