From 175c9b9969c1d1fbb21d052ea133717b50dae3cf Mon Sep 17 00:00:00 2001 From: Jack.Peng <jack.peng@broconcentric.com> Date: 星期五, 12 三月 2021 13:35:24 +0800 Subject: [PATCH] 新增设备输出OK也输出白点信息。 --- P066.Data/P066数据分析程序.csproj | 83 ++ P066.Data/P066.Data.csproj | 83 ++ .gitignore | 340 +++++++++ P066.Data/Program.cs | 22 P066.Data/Properties/Resources.resx | 117 +++ P066.Data/Properties/Settings.Designer.cs | 30 P066.Data/Properties/Settings.settings | 7 P066.Data.sln | 25 P066.Data/App.config | 6 P066.Data/Form1.resx | 123 +++ P066.Data/Properties/Resources.Designer.cs | 71 + P066.Data/Form1.Designer.cs | 93 ++ P066数据分析程序.sln | 25 P066.Data/Form1.cs | 1131 ++++++++++++++++++++++++++++++ P066.Data/Properties/AssemblyInfo.cs | 36 15 files changed, 2,192 insertions(+), 0 deletions(-) diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..4ce6fdd --- /dev/null +++ b/.gitignore @@ -0,0 +1,340 @@ +## Ignore Visual Studio temporary files, build results, and +## files generated by popular Visual Studio add-ons. +## +## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore + +# User-specific files +*.rsuser +*.suo +*.user +*.userosscache +*.sln.docstates + +# User-specific files (MonoDevelop/Xamarin Studio) +*.userprefs + +# Build results +[Dd]ebug/ +[Dd]ebugPublic/ +[Rr]elease/ +[Rr]eleases/ +x64/ +x86/ +[Aa][Rr][Mm]/ +[Aa][Rr][Mm]64/ +bld/ +[Bb]in/ +[Oo]bj/ +[Ll]og/ + +# Visual Studio 2015/2017 cache/options directory +.vs/ +# Uncomment if you have tasks that create the project's static files in wwwroot +#wwwroot/ + +# Visual Studio 2017 auto generated files +Generated\ Files/ + +# MSTest test Results +[Tt]est[Rr]esult*/ +[Bb]uild[Ll]og.* + +# NUNIT +*.VisualState.xml +TestResult.xml + +# Build Results of an ATL Project +[Dd]ebugPS/ +[Rr]eleasePS/ +dlldata.c + +# Benchmark Results +BenchmarkDotNet.Artifacts/ + +# .NET Core +project.lock.json +project.fragment.lock.json +artifacts/ + +# StyleCop +StyleCopReport.xml + +# Files built by Visual Studio +*_i.c +*_p.c +*_h.h +*.ilk +*.meta +*.obj +*.iobj +*.pch +*.pdb +*.ipdb +*.pgc +*.pgd +*.rsp +*.sbr +*.tlb +*.tli +*.tlh +*.tmp +*.tmp_proj +*_wpftmp.csproj +*.log +*.vspscc +*.vssscc +.builds +*.pidb +*.svclog +*.scc + +# Chutzpah Test files +_Chutzpah* + +# Visual C++ cache files +ipch/ +*.aps +*.ncb +*.opendb +*.opensdf +*.sdf +*.cachefile +*.VC.db +*.VC.VC.opendb + +# Visual Studio profiler +*.psess +*.vsp +*.vspx +*.sap + +# Visual Studio Trace Files +*.e2e + +# TFS 2012 Local Workspace +$tf/ + +# Guidance Automation Toolkit +*.gpState + +# ReSharper is a .NET coding add-in +_ReSharper*/ +*.[Rr]e[Ss]harper +*.DotSettings.user + +# JustCode is a .NET coding add-in +.JustCode + +# TeamCity is a build add-in +_TeamCity* + +# DotCover is a Code Coverage Tool +*.dotCover + +# AxoCover is a Code Coverage Tool +.axoCover/* +!.axoCover/settings.json + +# Visual Studio code coverage results +*.coverage +*.coveragexml + +# NCrunch +_NCrunch_* +.*crunch*.local.xml +nCrunchTemp_* + +# MightyMoose +*.mm.* +AutoTest.Net/ + +# Web workbench (sass) +.sass-cache/ + +# Installshield output folder +[Ee]xpress/ + +# DocProject is a documentation generator add-in +DocProject/buildhelp/ +DocProject/Help/*.HxT +DocProject/Help/*.HxC +DocProject/Help/*.hhc +DocProject/Help/*.hhk +DocProject/Help/*.hhp +DocProject/Help/Html2 +DocProject/Help/html + +# Click-Once directory +publish/ + +# Publish Web Output +*.[Pp]ublish.xml +*.azurePubxml +# Note: Comment the next line if you want to checkin your web deploy settings, +# but database connection strings (with potential passwords) will be unencrypted +*.pubxml +*.publishproj + +# Microsoft Azure Web App publish settings. Comment the next line if you want to +# checkin your Azure Web App publish settings, but sensitive information contained +# in these scripts will be unencrypted +PublishScripts/ + +# NuGet Packages +*.nupkg +# The packages folder can be ignored because of Package Restore +**/[Pp]ackages/* +# except build/, which is used as an MSBuild target. +!**/[Pp]ackages/build/ +# Uncomment if necessary however generally it will be regenerated when needed +#!**/[Pp]ackages/repositories.config +# NuGet v3's project.json files produces more ignorable files +*.nuget.props +*.nuget.targets + +# Microsoft Azure Build Output +csx/ +*.build.csdef + +# Microsoft Azure Emulator +ecf/ +rcf/ + +# Windows Store app package directories and files +AppPackages/ +BundleArtifacts/ +Package.StoreAssociation.xml +_pkginfo.txt +*.appx + +# Visual Studio cache files +# files ending in .cache can be ignored +*.[Cc]ache +# but keep track of directories ending in .cache +!?*.[Cc]ache/ + +# Others +ClientBin/ +~$* +*~ +*.dbmdl +*.dbproj.schemaview +*.jfm +*.pfx +*.publishsettings +orleans.codegen.cs + +# Including strong name files can present a security risk +# (https://github.com/github/gitignore/pull/2483#issue-259490424) +#*.snk + +# Since there are multiple workflows, uncomment next line to ignore bower_components +# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622) +#bower_components/ + +# RIA/Silverlight projects +Generated_Code/ + +# Backup & report files from converting an old project file +# to a newer Visual Studio version. Backup files are not needed, +# because we have git ;-) +_UpgradeReport_Files/ +Backup*/ +UpgradeLog*.XML +UpgradeLog*.htm +ServiceFabricBackup/ +*.rptproj.bak + +# SQL Server files +*.mdf +*.ldf +*.ndf + +# Business Intelligence projects +*.rdl.data +*.bim.layout +*.bim_*.settings +*.rptproj.rsuser +*- Backup*.rdl + +# Microsoft Fakes +FakesAssemblies/ + +# GhostDoc plugin setting file +*.GhostDoc.xml + +# Node.js Tools for Visual Studio +.ntvs_analysis.dat +node_modules/ + +# Visual Studio 6 build log +*.plg + +# Visual Studio 6 workspace options file +*.opt + +# Visual Studio 6 auto-generated workspace file (contains which files were open etc.) +*.vbw + +# Visual Studio LightSwitch build output +**/*.HTMLClient/GeneratedArtifacts +**/*.DesktopClient/GeneratedArtifacts +**/*.DesktopClient/ModelManifest.xml +**/*.Server/GeneratedArtifacts +**/*.Server/ModelManifest.xml +_Pvt_Extensions + +# Paket dependency manager +.paket/paket.exe +paket-files/ + +# FAKE - F# Make +.fake/ + +# JetBrains Rider +.idea/ +*.sln.iml + +# CodeRush personal settings +.cr/personal + +# Python Tools for Visual Studio (PTVS) +__pycache__/ +*.pyc + +# Cake - Uncomment if you are using it +# tools/** +# !tools/packages.config + +# Tabs Studio +*.tss + +# Telerik's JustMock configuration file +*.jmconfig + +# BizTalk build output +*.btp.cs +*.btm.cs +*.odx.cs +*.xsd.cs + +# OpenCover UI analysis results +OpenCover/ + +# Azure Stream Analytics local run output +ASALocalRun/ + +# MSBuild Binary and Structured Log +*.binlog + +# NVidia Nsight GPU debugger configuration file +*.nvuser + +# MFractors (Xamarin productivity tool) working folder +.mfractor/ + +# Local History for Visual Studio +.localhistory/ + +# BeatPulse healthcheck temp database +healthchecksdb \ No newline at end of file diff --git a/P066.Data.sln b/P066.Data.sln new file mode 100644 index 0000000..195a719 --- /dev/null +++ b/P066.Data.sln @@ -0,0 +1,25 @@ +锘� +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 15 +VisualStudioVersion = 15.0.28307.1259 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "P066.Data", "P066.Data\P066.Data.csproj", "{8B8F7749-8823-48C6-B12A-54979E28C10C}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {8B8F7749-8823-48C6-B12A-54979E28C10C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8B8F7749-8823-48C6-B12A-54979E28C10C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8B8F7749-8823-48C6-B12A-54979E28C10C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8B8F7749-8823-48C6-B12A-54979E28C10C}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {9015AB30-DC50-4705-A9A7-45C14C06313E} + EndGlobalSection +EndGlobal diff --git a/P066.Data/App.config b/P066.Data/App.config new file mode 100644 index 0000000..731f6de --- /dev/null +++ b/P066.Data/App.config @@ -0,0 +1,6 @@ +锘�<?xml version="1.0" encoding="utf-8" ?> +<configuration> + <startup> + <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" /> + </startup> +</configuration> \ No newline at end of file diff --git a/P066.Data/Form1.Designer.cs b/P066.Data/Form1.Designer.cs new file mode 100644 index 0000000..f399a82 --- /dev/null +++ b/P066.Data/Form1.Designer.cs @@ -0,0 +1,93 @@ +锘縩amespace P066.Data +{ + partial class Form1 + { + /// <summary> + /// 蹇呴渶鐨勮璁″櫒鍙橀噺銆� + /// </summary> + private System.ComponentModel.IContainer components = null; + + /// <summary> + /// 娓呯悊鎵�鏈夋鍦ㄤ娇鐢ㄧ殑璧勬簮銆� + /// </summary> + /// <param name="disposing">濡傛灉搴旈噴鏀炬墭绠¤祫婧愶紝涓� true锛涘惁鍒欎负 false銆�</param> + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows 绐椾綋璁捐鍣ㄧ敓鎴愮殑浠g爜 + + /// <summary> + /// 璁捐鍣ㄦ敮鎸佹墍闇�鐨勬柟娉� - 涓嶈淇敼 + /// 浣跨敤浠g爜缂栬緫鍣ㄤ慨鏀规鏂规硶鐨勫唴瀹广�� + /// </summary> + private void InitializeComponent() + { + this.btnLoadData1 = new System.Windows.Forms.Button(); + this.folderBrowserDialog1 = new System.Windows.Forms.FolderBrowserDialog(); + this.btnAnalyze = new System.Windows.Forms.Button(); + this.btnLoadData2 = new System.Windows.Forms.Button(); + this.SuspendLayout(); + // + // btnLoadData1 + // + this.btnLoadData1.Location = new System.Drawing.Point(16, 15); + this.btnLoadData1.Margin = new System.Windows.Forms.Padding(4); + this.btnLoadData1.Name = "btnLoadData1"; + this.btnLoadData1.Size = new System.Drawing.Size(176, 29); + this.btnLoadData1.TabIndex = 0; + this.btnLoadData1.Text = "鍔犺浇鏂囦欢澶�1"; + this.btnLoadData1.UseVisualStyleBackColor = true; + this.btnLoadData1.Click += new System.EventHandler(this.btnLoadData1_Click); + // + // btnAnalyze + // + this.btnAnalyze.Location = new System.Drawing.Point(16, 88); + this.btnAnalyze.Margin = new System.Windows.Forms.Padding(4); + this.btnAnalyze.Name = "btnAnalyze"; + this.btnAnalyze.Size = new System.Drawing.Size(176, 29); + this.btnAnalyze.TabIndex = 1; + this.btnAnalyze.Text = "寮�濮嬪垎鏋�"; + this.btnAnalyze.UseVisualStyleBackColor = true; + this.btnAnalyze.Click += new System.EventHandler(this.btnAnalyze_Click); + // + // btnLoadData2 + // + this.btnLoadData2.Location = new System.Drawing.Point(16, 51); + this.btnLoadData2.Margin = new System.Windows.Forms.Padding(4); + this.btnLoadData2.Name = "btnLoadData2"; + this.btnLoadData2.Size = new System.Drawing.Size(176, 29); + this.btnLoadData2.TabIndex = 1; + this.btnLoadData2.Text = "鍔犺浇鏂囦欢澶�2"; + this.btnLoadData2.UseVisualStyleBackColor = true; + this.btnLoadData2.Click += new System.EventHandler(this.btnLoadData2_Click); + // + // Form1 + // + this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 15F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(1067, 562); + this.Controls.Add(this.btnAnalyze); + this.Controls.Add(this.btnLoadData2); + this.Controls.Add(this.btnLoadData1); + this.Margin = new System.Windows.Forms.Padding(4); + this.Name = "Form1"; + this.Text = "Form1"; + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.Button btnLoadData1; + private System.Windows.Forms.FolderBrowserDialog folderBrowserDialog1; + private System.Windows.Forms.Button btnAnalyze; + private System.Windows.Forms.Button btnLoadData2; + } +} + diff --git a/P066.Data/Form1.cs b/P066.Data/Form1.cs new file mode 100644 index 0000000..d531351 --- /dev/null +++ b/P066.Data/Form1.cs @@ -0,0 +1,1131 @@ +锘縰sing System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; +using System.IO; + +namespace P066.Data +{ + public partial class Form1 : Form + { + DirectoryInfo directoryInfo1; + DirectoryInfo directoryInfo2; + + public Form1() + { + InitializeComponent(); + } + + private void btnLoadData1_Click(object sender, EventArgs e) + { + if (folderBrowserDialog1.ShowDialog() != DialogResult.OK) + return; + directoryInfo1 = new DirectoryInfo(folderBrowserDialog1.SelectedPath); + } + + private void btnLoadData2_Click(object sender, EventArgs e) + { + if (folderBrowserDialog1.ShowDialog() != DialogResult.OK) + return; + + directoryInfo2 = new DirectoryInfo(folderBrowserDialog1.SelectedPath); + } + + + + private void btnAnalyze_Click(object sender, EventArgs e) + { + + var fileinfos1 = directoryInfo1.GetFiles(); + var fileinfos2 = directoryInfo2.GetFiles(); + var listSum = new List<ResultData>(); + var JudgeListSum = new List<ResultData>(); + string filename = ""; + int WhiteI = 0; + int WhiteningI = 0; + for (int i = 0; i < fileinfos1.Length; i++) + { + var list = CompareFile(fileinfos1[i], fileinfos2[i]); + var judgeList = JudgeCompareFile(fileinfos1[i], fileinfos2[i]); + + if (fileinfos1[i].Name.Contains("鐧界偣")) + { + WhiteI++; + list.ForEach(a => a.Lensnumber = WhiteI); + listSum.AddRange(list); + judgeList.ForEach(a => a.Lensnumber = WhiteI); + JudgeListSum.AddRange(judgeList); + } + if (fileinfos1[i].Name.Contains("鍒櫧")) + { + WhiteningI++; + list.ForEach(a => a.Lensnumber = WhiteningI); + listSum.AddRange(list); + judgeList.ForEach(a => a.Lensnumber = WhiteningI); + JudgeListSum.AddRange(judgeList); + + } + + var group = judgeList.GroupBy(a => a.TimeTip); + + foreach (var item in group) + { + //璁$畻闀滃ご1缂洪櫡浣嶇疆鍙婅搴� + var listLensnumber1 = judgeList.FindAll(a => a.TimeTip == item.Key && a.Lensnumber == 1); + for (int k = 0; k < listLensnumber1.Count; k++) + { + var lenAngle = GetAngle(listLensnumber1[k].X, listLensnumber1[k].Y); + if (lenAngle < 0) + { + lenAngle = 360 + lenAngle; + } + listLensnumber1[k].angle = lenAngle; + + var distance = GetDistance(1050, 1050, listLensnumber1[k].X, listLensnumber1[k].Y); + + if (distance <= 539.87) + { + listLensnumber1[k].location = "闀滃ご"; + listLensnumber1[k].R = distance; + } + else if (539.87 < distance && distance <= 777.11) + { + listLensnumber1[k].location = "鏂滈潰"; + listLensnumber1[k].R = distance; + } + else if (777.11 < distance && distance <= 919.88) + { + listLensnumber1[k].location = "骞抽潰"; + listLensnumber1[k].R = distance; + } + else + { + listLensnumber1[k].location = "鍖哄煙澶�"; + listLensnumber1[k].R = distance; + } + + } + //璁$畻闀滃ご2浣嶇疆鍙婅搴� + var listLensnumber2 = judgeList.FindAll(a => a.TimeTip == item.Key && a.Lensnumber == 2); + for (int k = 0; k < listLensnumber2.Count; k++) + { + var lenAngle = GetAngle(listLensnumber2[k].X, listLensnumber2[k].Y); + if (lenAngle < 0) + { + lenAngle = 360 + lenAngle; + } + listLensnumber2[k].angle = lenAngle; + var distance = GetDistance(1050, 1050, listLensnumber2[k].X, listLensnumber2[k].Y); + if (distance <= 400) + { + listLensnumber2[k].location = "闀滃ご"; + listLensnumber2[k].R = distance; + } + else if (400 < distance && distance <= 772.18) + { + listLensnumber2[k].location = "鏂滈潰"; + listLensnumber2[k].R = distance; + } + else if (772.18 < distance && distance <= 873.38) + { + listLensnumber2[k].location = "骞抽潰"; + listLensnumber2[k].R = distance; + } + else + { + listLensnumber2[k].location = "鍖哄煙澶�"; + listLensnumber2[k].R = distance; + } + } + //璁$畻闀滃ご3浣嶇疆鍙婅搴� + var listLensnumber3 = judgeList.FindAll(a => a.TimeTip == item.Key && a.Lensnumber == 3); + for (int k = 0; k < listLensnumber3.Count; k++) + { + var lenAngle = GetAngle(listLensnumber3[k].X, listLensnumber3[k].Y); + if (lenAngle < 0) + { + lenAngle = 360 + lenAngle; + } + listLensnumber3[k].angle = lenAngle; + var distance = GetDistance(1050, 1050, listLensnumber3[k].X, listLensnumber3[k].Y); + if (distance <= 105.63) + { + listLensnumber3[k].location = "闀滃ご"; + listLensnumber3[k].R = distance; + } + else + { + listLensnumber3[k].location = "鏂滈潰"; + listLensnumber3[k].R = distance; + } + } + //璁$畻闀滃ご4浣嶇疆鍙婅搴� + var listLensnumber4 = judgeList.FindAll(a => a.TimeTip == item.Key && a.Lensnumber == 4); + for (int k = 0; k < listLensnumber4.Count; k++) + { + var lenAngle = GetAngle(listLensnumber4[k].X, listLensnumber4[k].Y); + if (lenAngle < 0) + { + lenAngle = 360 + lenAngle; + } + listLensnumber4[k].angle = lenAngle; + var distance = GetDistance(1050, 1050, listLensnumber4[k].X, listLensnumber4[k].Y); + if (distance <= 339.88) + { + listLensnumber4[k].location = "闀滃ご"; + listLensnumber4[k].R = distance; + } + else if (339.88 < distance && distance <= 547.02) + { + listLensnumber4[k].location = "鏂滈潰"; + listLensnumber4[k].R = distance; + } + else if (547.02 < distance && distance <= 614.73) + { + listLensnumber4[k].location = "骞抽潰"; + listLensnumber4[k].R = distance; + } + else + { + listLensnumber4[k].location = "鍖哄煙澶�"; + listLensnumber4[k].R = distance; + } + } + + } + + + + #region//缁欓暅澶村尯鍒嗕綅缃強瑙掑害 + var group11 = list.GroupBy(a => a.TimeTip); + string currPath = ""; + foreach (var item in group11) + { + //璁$畻闀滃ご1缂洪櫡浣嶇疆鍙婅搴� + var listLensnumber1 = list.FindAll(a => a.TimeTip == item.Key && a.Lensnumber == 1); + for (int k = 0; k < listLensnumber1.Count; k++) + { + var lenAngle = GetAngle(listLensnumber1[k].X, listLensnumber1[k].Y); + if (lenAngle<0) + { + lenAngle = 360 + lenAngle; + } + listLensnumber1[k].angle = lenAngle; + + var distance = GetDistance(1050, 1050, listLensnumber1[k].X, listLensnumber1[k].Y); + + if (distance <= 539.87) + { + listLensnumber1[k].location = "闀滃ご"; + listLensnumber1[k].R = distance; + } + else if (539.87 < distance && distance <= 777.11) + { + listLensnumber1[k].location = "鏂滈潰"; + listLensnumber1[k].R = distance; + } + else if (777.11 < distance && distance <= 919.88) + { + listLensnumber1[k].location = "骞抽潰"; + listLensnumber1[k].R = distance; + } + else + { + listLensnumber1[k].location = "鍖哄煙澶�"; + listLensnumber1[k].R = distance; + } + + } + //璁$畻闀滃ご2浣嶇疆鍙婅搴� + var listLensnumber2 = list.FindAll(a => a.TimeTip == item.Key && a.Lensnumber == 2); + for (int k = 0; k < listLensnumber2.Count; k++) + { + var lenAngle = GetAngle(listLensnumber2[k].X, listLensnumber2[k].Y); + if (lenAngle < 0) + { + lenAngle = 360 + lenAngle; + } + listLensnumber2[k].angle = lenAngle; + var distance = GetDistance(1050, 1050, listLensnumber2[k].X, listLensnumber2[k].Y); + if (distance <= 400) + { + listLensnumber2[k].location = "闀滃ご"; + listLensnumber2[k].R = distance; + } + else if (400 < distance && distance <= 772.18) + { + listLensnumber2[k].location = "鏂滈潰"; + listLensnumber2[k].R = distance; + } + else if (772.18 < distance && distance <= 873.38) + { + listLensnumber2[k].location = "骞抽潰"; + listLensnumber2[k].R = distance; + } + else + { + listLensnumber2[k].location = "鍖哄煙澶�"; + listLensnumber2[k].R = distance; + } + } + //璁$畻闀滃ご3浣嶇疆鍙婅搴� + var listLensnumber3 = list.FindAll(a => a.TimeTip == item.Key && a.Lensnumber == 3); + for (int k = 0; k < listLensnumber3.Count; k++) + { + var lenAngle = GetAngle(listLensnumber3[k].X, listLensnumber3[k].Y); + if (lenAngle < 0) + { + lenAngle = 360 + lenAngle; + } + listLensnumber3[k].angle = lenAngle; + var distance = GetDistance(1050, 1050, listLensnumber3[k].X, listLensnumber3[k].Y); + if (distance <= 105.63) + { + listLensnumber3[k].location = "闀滃ご"; + listLensnumber3[k].R = distance; + } + else + { + listLensnumber3[k].location = "鏂滈潰"; + listLensnumber3[k].R = distance; + } + } + //璁$畻闀滃ご4浣嶇疆鍙婅搴� + var listLensnumber4 = list.FindAll(a => a.TimeTip == item.Key && a.Lensnumber == 4); + for (int k = 0; k < listLensnumber4.Count; k++) + { + var lenAngle = GetAngle(listLensnumber4[k].X, listLensnumber4[k].Y); + if (lenAngle < 0) + { + lenAngle = 360 + lenAngle; + } + listLensnumber4[k].angle = lenAngle; + var distance = GetDistance(1050, 1050, listLensnumber4[k].X, listLensnumber4[k].Y); + if (distance <= 339.88) + { + listLensnumber4[k].location = "闀滃ご"; + listLensnumber4[k].R = distance; + } + else if (339.88 < distance && distance <= 547.02) + { + listLensnumber4[k].location = "鏂滈潰"; + listLensnumber4[k].R = distance; + } + else if (547.02 < distance && distance <= 614.73) + { + listLensnumber4[k].location = "骞抽潰"; + listLensnumber4[k].R = distance; + } + else + { + listLensnumber4[k].location = "鍖哄煙澶�"; + listLensnumber4[k].R = distance; + } + } + + } + #endregion + #region//鍒ゆ柇鏄垵妫�鏂囦欢澶硅繕鏄妫�鏂囦欢澶� + if (fileinfos1[i].Name.Contains("鍒濇")) + { + filename = "鍒濇"; + } + if (fileinfos1[i].Name.Contains("澶嶆")) + { + filename = "澶嶆"; + } + if (fileinfos1[i].Name.Contains("鍒櫧")) + { + filename = "鍒櫧"; + } + currPath = directoryInfo1.Parent.Parent.FullName; + string subPath = currPath + "/" + filename + "鍚堝苟鍚�" + "/"; + if (false==Directory.Exists(subPath)) + { + Directory.CreateDirectory(subPath); + } + + #endregion + #region//娴嬭瘯杈撳嚭璁惧鍒ゆ柇缁撴灉 + + //var title12 = $"鏃堕棿鎴�,璁惧鍒ゆ柇缁撴灉"; + //var file12 = $"{directoryInfo1.Parent.FullName}\\{filename + (i + 111)}.csv"; + //File.AppendAllText(file12, title12, Encoding.UTF8); + //File.AppendAllText(file12, "\r\n"); + + //foreach (var item in JudgeListSum) + //{ + + // var conrent12 = $"{item.TimeTip},{item.JudgmentResult}"; + // File.AppendAllText(file12, conrent12, Encoding.UTF8); + // File.AppendAllText(file12, "\r\n"); + //} + + #endregion + + var title1 = $"鏃堕棿鎴�,鏂囦欢鍚�,鍒ゆ柇,鍙兘鎬�,涓嶇‘瀹氭��,楂�,瀹�,X,Y,鏈�澶у昂瀵�,浣嶇疆,R,瑙掑害,缂洪櫡绫诲瀷"; + var file1 = $"{subPath}\\{filename + (i+1)}.csv"; + File.AppendAllText(file1, title1, Encoding.UTF8); + File.AppendAllText(file1, "\r\n"); + + #region//璁$畻鎬绘暟 + + //var group1 = list.GroupBy(a => a.TimeTip); + + //var title2 = $"鏃堕棿鎴�,鎬绘暟"; + //var file2 = $"{directoryInfo1.Parent.FullName}\\{ "鎬绘暟" +( i+1)}.csv"; + //File.AppendAllText(file2, title2, Encoding.UTF8); + //File.AppendAllText(file2, "\r\n"); + //foreach (var item in group1) + //{ + // var content = $"{item.Key},{item.ToList().Count}"; + + // File.AppendAllText(file2, content, Encoding.UTF8); + // File.AppendAllText(file2, "\r\n"); + //} + #endregion + foreach (var item in list) + { + string result = item.Result ? "OK" : "NG"; + + var content = $"{item.TimeTip},{item.ImageFileName},{result},{item.Probability},{item.Uncertainty},{item.Height},{item.Width},{item.X},{item.Y},{item.ex},{item.location},{ Convert.ToInt32(item.R)},{ Convert.ToInt32(item.angle)},{item.DefectType}"; + + File.AppendAllText(file1, content, Encoding.UTF8); + File.AppendAllText(file1, "\r\n"); + } + } + + + var dataGroup1 = listSum.GroupBy(a => a.TimeTip); + var dataListSum = new List<string>(); + + foreach (var item in dataGroup1) + { + dataListSum.Add(item.Key); + } + dataListSum = dataListSum.Distinct().ToList(); + dataListSum.Sort(); + var dataList = new List<ResultData>(); + + var title12 = $"鏃堕棿鎴�,鐩告満搴忓彿,璁惧鍒ゆ柇缁撴灉,缂洪櫡绫诲瀷,X,Y,鏈�澶у昂瀵�,R,浣嶇疆,瑙掑害"; + var file12 = $"{directoryInfo1.Parent.FullName}\\{filename+"璁惧鍒ゆ柇缁撴灉"}.csv"; + + File.AppendAllText(file12, title12, Encoding.UTF8); + File.AppendAllText(file12, "\r\n"); + + foreach (var item in dataListSum) + { + var test11 = JudgeListSum.FindAll(a => a.TimeTip == item&&a.Lensnumber==1); + if (test11.Count==0) + { + + var content11 = $"{item},{1},{"OK"}"; + File.AppendAllText(file12, content11, Encoding.UTF8); + File.AppendAllText(file12, "\r\n"); + } + else + { + if (test11[0].DefectType=="鍒櫧") + { + var content11 = $"{item},{1},{test11[0].JudgmentResult},{test11[0].DefectType}"; + File.AppendAllText(file12, content11, Encoding.UTF8); + File.AppendAllText(file12, "\r\n"); + for (int i = 0; i < test11.Count; i++) + { + if (test11[i].DefectType=="鍒櫧") + { + var content111 = $"{""},{""},{""},{""},{test11[i].X},{test11[i].Y},{test11[i].ex},{(int)(test11[i].R)},{test11[i].location},{(int)(test11[i].angle)}"; + File.AppendAllText(file12, content111, Encoding.UTF8); + File.AppendAllText(file12, "\r\n"); + } + else + { + var content111 = $"{""},{""},{""},{test11[i].DefectType},{test11[i].X},{test11[i].Y},{test11[i].ex},{(int)(test11[i].R)},{test11[i].location},{(int)(test11[i].angle)}"; + File.AppendAllText(file12, content111, Encoding.UTF8); + File.AppendAllText(file12, "\r\n"); + } + + } + } + else + { + var content11 = $"{item},{1},{test11[0].JudgmentResult},{test11[0].DefectType}"; + File.AppendAllText(file12, content11, Encoding.UTF8); + File.AppendAllText(file12, "\r\n"); + for (int i = 0; i < test11.Count; i++) + { + var content111 = $"{""},{""},{""},{""},{test11[i].X},{test11[i].Y},{test11[i].ex},{(int)(test11[i].R)},{test11[i].location},{(int)(test11[i].angle)}"; + File.AppendAllText(file12, content111, Encoding.UTF8); + File.AppendAllText(file12, "\r\n"); + } + } + + } + var test12 = JudgeListSum.FindAll(a => a.TimeTip == item && a.Lensnumber == 2); + if (test12.Count == 0) + { + + var content11 = $"{""},{2},{"OK"}"; + File.AppendAllText(file12, content11, Encoding.UTF8); + File.AppendAllText(file12, "\r\n"); + } + else + { + if (test12[0].DefectType == "鍒櫧") + { + var content11 = $"{""},{2},{test12[0].JudgmentResult},{test12[0].DefectType}"; + File.AppendAllText(file12, content11, Encoding.UTF8); + File.AppendAllText(file12, "\r\n"); + for (int i = 0; i < test12.Count; i++) + { + if (test12[i].DefectType == "鍒櫧") + { + var content111 = $"{""},{""},{""},{""},{test12[i].X},{test12[i].Y},{test12[i].ex},{(int)(test12[i].R)},{test12[i].location},{(int)(test12[i].angle)}"; + File.AppendAllText(file12, content111, Encoding.UTF8); + File.AppendAllText(file12, "\r\n"); + } + else + { + var content111 = $"{""},{""},{""},{test12[i].DefectType},{test12[i].X},{test12[i].Y},{test12[i].ex},{(int)(test12[i].R)},{test12[i].location},{(int)(test12[i].angle)}"; + File.AppendAllText(file12, content111, Encoding.UTF8); + File.AppendAllText(file12, "\r\n"); + } + + } + + + } + else + { + var content11 = $"{""},{2},{test12[0].JudgmentResult},{test12[0].DefectType}"; + File.AppendAllText(file12, content11, Encoding.UTF8); + File.AppendAllText(file12, "\r\n"); + for (int i = 0; i < test12.Count; i++) + { + var content111 = $"{""},{""},{""},{""},{test12[i].X},{test12[i].Y},{test12[i].ex},{(int)(test12[i].R)},{test12[i].location},{(int)(test12[i].angle)}"; + File.AppendAllText(file12, content111, Encoding.UTF8); + File.AppendAllText(file12, "\r\n"); + } + } + } + var test13 = JudgeListSum.FindAll(a => a.TimeTip == item && a.Lensnumber == 3); + if (test13.Count == 0) + { + + var content11 = $"{""},{3},{"OK"}"; + File.AppendAllText(file12, content11, Encoding.UTF8); + File.AppendAllText(file12, "\r\n"); + } + else + { + if (test13[0].DefectType == "鍒櫧") + { + var content11 = $"{""},{3},{test13[0].JudgmentResult},{test13[0].DefectType}"; + File.AppendAllText(file12, content11, Encoding.UTF8); + File.AppendAllText(file12, "\r\n"); + for (int i = 0; i < test13.Count; i++) + { + if (test13[i].DefectType == "鍒櫧") + { + var content111 = $"{""},{""},{""},{""},{test13[i].X},{test13[i].Y},{test13[i].ex},{(int)(test13[i].R)},{test13[i].location},{(int)(test13[i].angle)}"; + File.AppendAllText(file12, content111, Encoding.UTF8); + File.AppendAllText(file12, "\r\n"); + } + else + { + var content111 = $"{""},{""},{""},{test13[i].DefectType},{test13[i].X},{test13[i].Y},{test13[i].ex},{(int)(test13[i].R)},{test13[i].location},{(int)(test13[i].angle)}"; + File.AppendAllText(file12, content111, Encoding.UTF8); + File.AppendAllText(file12, "\r\n"); + } + + } + + } + else + { + var content11 = $"{""},{3},{test13[0].JudgmentResult},{test13[0].DefectType}"; + File.AppendAllText(file12, content11, Encoding.UTF8); + File.AppendAllText(file12, "\r\n"); + for (int i = 0; i < test13.Count; i++) + { + var content111 = $"{""},{""},{""},{""},{test13[i].X},{test13[i].Y},{test13[i].ex},{(int)(test13[i].R)},{test13[i].location},{(int)(test13[i].angle)}"; + File.AppendAllText(file12, content111, Encoding.UTF8); + File.AppendAllText(file12, "\r\n"); + } + } + } + var test14 = JudgeListSum.FindAll(a => a.TimeTip == item && a.Lensnumber == 4); + if (test14.Count == 0) + { + + var content11 = $"{""},{4},{"OK"}"; + File.AppendAllText(file12, content11, Encoding.UTF8); + File.AppendAllText(file12, "\r\n"); + } + else + { + if (test14[0].DefectType == "鍒櫧") + { + var content11 = $"{""},{4},{test14[0].JudgmentResult},{test14[0].DefectType}"; + File.AppendAllText(file12, content11, Encoding.UTF8); + File.AppendAllText(file12, "\r\n"); + for (int i = 0; i < test14.Count; i++) + { + if (test14[i].DefectType == "鍒櫧") + { + var content111 = $"{""},{""},{""},{""},{test14[i].X},{test14[i].Y},{test14[i].ex},{(int)(test14[i].R)},{test14[i].location},{(int)(test14[i].angle)}"; + File.AppendAllText(file12, content111, Encoding.UTF8); + File.AppendAllText(file12, "\r\n"); + } + else + { + var content111 = $"{""},{""},{""},{test14[i].DefectType},{test14[i].X},{test14[i].Y},{test14[i].ex},{(int)(test14[i].R)},{test14[i].location},{(int)(test14[i].angle)}"; + File.AppendAllText(file12, content111, Encoding.UTF8); + File.AppendAllText(file12, "\r\n"); + } + + } + } + else + { + var content11 = $"{""},{4},{test14[0].JudgmentResult},{test14[0].DefectType}"; + File.AppendAllText(file12, content11, Encoding.UTF8); + File.AppendAllText(file12, "\r\n"); + for (int i = 0; i < test14.Count; i++) + { + var content111 = $"{""},{""},{""},{""},{test14[i].X},{test14[i].Y},{test14[i].ex},{(int)(test14[i].R)},{test14[i].location},{(int)(test14[i].angle)}"; + File.AppendAllText(file12, content111, Encoding.UTF8); + File.AppendAllText(file12, "\r\n"); + } + } + } + //var conrent12 = $"{item},{item}"; + //File.AppendAllText(file12, conrent12, Encoding.UTF8); + //File.AppendAllText(file12, "\r\n"); + } + + + + + + + + + + + + + #region//鏍规嵁浜у搧缂栧彿杈撳嚭鎬荤己闄锋姤琛� + var title = $"浜у搧缂栧彿,闀滃ご缂栧彿,鎬荤己闄锋暟閲�"; + var file = $"{directoryInfo1.Parent.FullName}\\{filename+ "缂洪櫡鎬绘暟鎶ヨ〃"}.csv"; + File.AppendAllText(file, title, Encoding.UTF8); + File.AppendAllText(file, "\r\n"); + var listSumGroup = listSum.GroupBy(a => a.TimeTip); + foreach (var item in listSumGroup) + { + var listLensnumber1 = listSum.FindAll(a => a.TimeTip == item.Key && a.Lensnumber == 1); + var listLensnumberCount1 = listLensnumber1.Count; + var listLensnumber2 = listSum.FindAll(a => a.TimeTip == item.Key && a.Lensnumber == 2); + var listLensnumberCount2 = listLensnumber2.Count; + var listLensnumber3 = listSum.FindAll(a => a.TimeTip == item.Key && a.Lensnumber == 3); + var listLensnumberCount3 = listLensnumber3.Count; + var listLensnumber4 = listSum.FindAll(a => a.TimeTip == item.Key && a.Lensnumber == 4); + var listLensnumberCount4 = listLensnumber4.Count; + //绗竴琛� + var content1 = $"{item.Key},{1},{listLensnumberCount1}"; + File.AppendAllText(file, content1, Encoding.UTF8); + File.AppendAllText(file, "\r\n"); + //绗簩琛� + var content2 = $"{""},{2},{listLensnumberCount2}"; + File.AppendAllText(file, content2, Encoding.UTF8); + File.AppendAllText(file, "\r\n"); + //绗笁琛� + var content3 = $"{""},{3},{listLensnumberCount3}"; + File.AppendAllText(file, content3, Encoding.UTF8); + File.AppendAllText(file, "\r\n"); + //绗洓琛� + var content4 = $"{""},{4},{listLensnumberCount4}"; + File.AppendAllText(file, content4, Encoding.UTF8); + File.AppendAllText(file, "\r\n"); + + } + #endregion + + + } + + + private List<ResultData> CompareFile(FileInfo fileInfo1, FileInfo fileInfo2) + { + var allLines1 = File.ReadAllLines(fileInfo1.FullName, Encoding.Default); + var allLines2 = File.ReadAllLines(fileInfo2.FullName, Encoding.Default); + List<ResultData> dataList1 = new List<ResultData>(); + List<ResultData> dataList2 = new List<ResultData>(); + if (allLines1.Length>1) + { + dataList1 = GetData(allLines1); + } + if (allLines2.Length > 1) + { + dataList2 = GetData(allLines2); + } + + + + #region //灏嗘椂闂存埑鐩稿悓鐨勫垎涓轰竴缁勫苟鎺掑簭 + + var dataGroup1 = dataList1.GroupBy(a => a.TimeTip); + var dataGroup2 = dataList2.GroupBy(a => a.TimeTip); + var dataListSum = new List<string>(); + + foreach (var item in dataGroup1) + { + dataListSum.Add(item.Key); + } + foreach (var item in dataGroup2) + { + dataListSum.Add(item.Key); + } + dataListSum = dataListSum.Distinct().ToList(); + dataListSum.Sort(); + #endregion + + var dataList = new List<ResultData>(); + var dataList11 = new List<ResultData>(); + var dataList22 = new List<ResultData>(); + foreach (var item in dataListSum) + { + var list1 = dataList1.FindAll(a => a.TimeTip == item && !a.Result); + var list2 = dataList2.FindAll(a => a.TimeTip == item && !a.Result); + var itemToRemove = new List<ResultData>(); + #region//璁$畻琛ㄦ牸2鏈�澶у昂瀵� + for (int ii = 0; ii < list2.Count; ii++) + { + if (list2[ii].Width > list2[ii].Height) + { + list2[ii].ex = list2[ii].Width * 0.0042; + } + else + { + list2[ii].ex = list2[ii].Height * 0.0042; + } + var distance = GetDistance(1050, 1050, list2[ii].X, list2[ii].Y); + list2[ii].R = distance; + } + #endregion + for (int i = 0; i < list1.Count; i++) + { + #region//璁$畻琛ㄦ牸1鏈�澶у昂瀵� + if (list1[i].Width > list1[i].Height) + { + list1[i].ex = list1[i].Width * 0.0042; + } + else + { + list1[i].ex = list1[i].Height * 0.0042; + } + var distance1 = GetDistance(1050, 1050, list1[i].X, list1[i].Y); + list1[i].R = distance1; + + #endregion + for (int j = 0; j < list2.Count; j++) + { + + var distance = GetDistance(list1[i].X, list1[i].Y, list2[j].X, list2[j].Y); + if (distance < 20) + { + itemToRemove.Add(list2[j]); + } + } + } + + for (int i = 0; i < itemToRemove.Count; i++) + { + list2.Remove(itemToRemove[i]); + } + + dataList11.AddRange(list1); + dataList22.AddRange(list2); + } + + + dataList.AddRange(dataList1); + dataList.AddRange(dataList2); + return dataList; + } + //缁熻璁惧鍒ゆ柇缁撴灉 + private List<ResultData> JudgeCompareFile(FileInfo fileInfo1, FileInfo fileInfo2) + { + + #region //灞忚斀 + //var allLines1 = File.ReadAllLines(fileInfo1.FullName,Encoding.Default); + //var allLines2 = File.ReadAllLines(fileInfo2.FullName, Encoding.Default); + ////var dataJudgeList1 = GetJudgeData(allLines1); + ////var dataJudgeList2 = GetJudgeData(allLines2); + //List<ResultData> dataJudgeList1 = new List<ResultData>(); + //List<ResultData> dataJudgeList2 = new List<ResultData>(); + //if (allLines1.Length > 1) + //{ + // dataJudgeList1 = GetData(allLines1); + //} + //if (allLines2.Length > 1) + //{ + + // dataJudgeList2 = GetData(allLines2); + //} + + //var dataGroup1 = dataJudgeList1.GroupBy(a => a.TimeTip); + //var dataGroup2 = dataJudgeList2.GroupBy(a => a.TimeTip); + //var dataListSum = new List<string>(); + + //foreach (var item in dataGroup1) + //{ + // dataListSum.Add(item.Key); + //} + //foreach (var item in dataGroup2) + //{ + // dataListSum.Add(item.Key); + //} + //dataListSum = dataListSum.Distinct().ToList(); + //dataListSum.Sort(); + //var dataList = new List<ResultData>(); + //var itemToRemove = new List<ResultData>(); + //foreach (var item in dataListSum) + //{ + + // var list1 = dataJudgeList1.FindAll(a => a.TimeTip == item && a.JudgmentResult=="NG"&&!a.Result); + // var list2 = dataJudgeList2.FindAll(a => a.TimeTip == item && a.JudgmentResult == "NG"&&!a.Result); + // for (int i = 0; i < list1.Count; i++) + // { + // for (int j = 0; j < list2.Count; j++) + // { + // if (list1[i].JudgmentResult != list2[j].JudgmentResult) + // { + // list1[i].JudgmentResult = "NG"; + // list2[j].JudgmentResult = "NG"; + // itemToRemove.Add(list2[j]); + // } + // if (list1[i].JudgmentResult == list2[j].JudgmentResult) + // { + // itemToRemove.Add(list2[j]); + // } + // } + // } + // //if (list1.Count ==0&&list2.Count==0) + // //{ + // // dataList.Add(new ResultData() + // // { + // // TimeTip = item, + // // JudgmentResult = "OK", + + // // }); ; ; + // //} + // dataList.AddRange(list1); + // dataList.AddRange(list2); + //} + //for (int i = 0; i < itemToRemove.Count; i++) + //{ + // dataList.Remove(itemToRemove[i]); + //} + #endregion + + var allLines1 = File.ReadAllLines(fileInfo1.FullName, Encoding.Default); + var allLines2 = File.ReadAllLines(fileInfo2.FullName, Encoding.Default); + List<ResultData> dataList1 = new List<ResultData>(); + List<ResultData> dataList2 = new List<ResultData>(); + if (allLines1.Length > 1) + { + dataList1 = GetData(allLines1); + } + if (allLines2.Length > 1) + { + dataList2 = GetData(allLines2); + } + + + + #region //灏嗘椂闂存埑鐩稿悓鐨勫垎涓轰竴缁勫苟鎺掑簭 + + var dataGroup1 = dataList1.GroupBy(a => a.TimeTip); + var dataGroup2 = dataList2.GroupBy(a => a.TimeTip); + var dataListSum = new List<string>(); + + foreach (var item in dataGroup1) + { + dataListSum.Add(item.Key); + } + foreach (var item in dataGroup2) + { + dataListSum.Add(item.Key); + } + dataListSum = dataListSum.Distinct().ToList(); + dataListSum.Sort(); + #endregion + + var dataList = new List<ResultData>(); + var dataList11 = new List<ResultData>(); + var dataList22 = new List<ResultData>(); + foreach (var item in dataListSum) + { + var list1 = dataList1.FindAll(a => a.TimeTip == item && !a.Result); + var list2 = dataList2.FindAll(a => a.TimeTip == item && !a.Result); + var itemToRemove1 = new List<ResultData>(); + #region//璁$畻琛ㄦ牸2鏈�澶у昂瀵� + for (int ii = 0; ii < list2.Count; ii++) + { + if (list2[ii].Width > list2[ii].Height) + { + list2[ii].ex = list2[ii].Width * 0.0042; + } + else + { + list2[ii].ex = list2[ii].Height * 0.0042; + } + var distance = GetDistance(1050, 1050, list2[ii].X, list2[ii].Y); + list2[ii].R = distance; + } + #endregion + for (int i = 0; i < list1.Count; i++) + { + #region//璁$畻琛ㄦ牸1鏈�澶у昂瀵� + if (list1[i].Width > list1[i].Height) + { + list1[i].ex = list1[i].Width * 0.0042; + } + else + { + list1[i].ex = list1[i].Height * 0.0042; + } + var distance1 = GetDistance(1050, 1050, list1[i].X, list1[i].Y); + list1[i].R = distance1; + + #endregion + for (int j = 0; j < list2.Count; j++) + { + + var distance = GetDistance(list1[i].X, list1[i].Y, list2[j].X, list2[j].Y); + if (distance < 20) + { + itemToRemove1.Add(list2[j]); + if (list1[i].JudgmentResult!=list2[j].JudgmentResult) + { + list1[i].JudgmentResult = "NG"; + list2[j].JudgmentResult = "NG"; + } + + } + } + } + + for (int i = 0; i < itemToRemove1.Count; i++) + { + list2.Remove(itemToRemove1[i]); + } + + dataList11.AddRange(list1); + dataList22.AddRange(list2); + } + + //var itemToRemove = new List<ResultData>(); + foreach (var item in dataListSum) + { + + var list1 = dataList11.FindAll(a => a.TimeTip == item/* && a.JudgmentResult == "NG"*/ ); //涓嶇OK銆丯G閮借杈撳嚭 + var list2 = dataList22.FindAll(a => a.TimeTip == item /*&& a.JudgmentResult == "NG"*/); //涓嶇OK銆丯G閮借杈撳嚭 + //for (int i = 0; i < list1.Count; i++) + //{ + // for (int j = 0; j < list2.Count; j++) + // { + // if (list1[i].JudgmentResult != list2[j].JudgmentResult) + // { + // list1[i].JudgmentResult = "NG"; + // list2[j].JudgmentResult = "NG"; + // itemToRemove.Add(list2[j]); + // } + // if (list1[i].JudgmentResult == list2[j].JudgmentResult) + // { + // itemToRemove.Add(list2[j]); + // } + // } + //} + + dataList.AddRange(list1); + dataList.AddRange(list2); + } + //for (int i = 0; i < itemToRemove.Count; i++) + //{ + // dataList.Remove(itemToRemove[i]); + //} + + return dataList; + + } + + private List<ResultData> GetData(string[] allLines) + { + var dataList = new List<ResultData>(); + var nametemp = allLines[1].Split(',')[0]; + var resulttemp = allLines[1].Split(',')[1]; + //var Ptr = allLines[1].Split(',')[10]; + for (int i = 1; i < allLines.Length; i++) + { + + + var data = allLines[i].Split(','); + + if (data[6]=="-") + { + continue; + } + + string defectType = ""; + string bbb = ""; + string Ptr = ""; + if (data[0] == "") + { + data[0] = nametemp; + data[1] = resulttemp; + //data[10] = Ptr; + + } + if (data[1]== "鍒櫧") + { + defectType = "鍒櫧"; + bbb = "NG"; + Ptr = ""; + } + else + { + defectType = "鐧界偣"; + bbb = data[1]; + + if (data.Length>10) + { + Ptr = data[10]; + } + } + var data6 = data[6].Split('#').ToList(); + data6.Remove(""); + var temp6 = Convert.ToInt32(data6[0]); + for (int a6 = 0; a6 < data6.Count; a6++) + { + if (Convert.ToInt32(data6[a6]) > temp6) + { + temp6 = Convert.ToInt32(data6[a6]); + } + } + data[6] = Convert.ToString(temp6); + + var data7 = data[7].Split('#').ToList(); + data7.Remove(""); + var temp7 = Convert.ToInt32(data7[0]); + for (int a7 = 0; a7 < data7.Count; a7++) + { + if (Convert.ToInt32(data7[a7]) > temp7) + { + temp7 = Convert.ToInt32(data7[a7]); + } + } + data[7] = Convert.ToString(temp7); + + dataList.Add(new ResultData() + { + TimeTip = data[0].Split('-')[0], + ImageFileName = data[0], + JudgmentResult = bbb, + Result = data[3] == "OK", + Probability = Convert.ToDouble(data[4]), + Uncertainty = Convert.ToDouble(data[5]), + //Height = Convert.ToDouble(data[6].Replace("#", "").Replace("-", "")), + //Width = Convert.ToDouble(data[7].Replace("#", "").Replace("-", "")), + 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 = defectType, + PostTreatmentResults = Ptr, + + }) ; ; ; + + nametemp = data[0]; + resulttemp= data[1]; + + } + + return dataList; + } + //private List<ResultData> GetJudgeData(string[] allLines) + //{ + // var dataList = new List<ResultData>(); + // for (int i = 1; i < allLines.Length; i++) + // { + // var data = allLines[i].Split(','); + // string defectType = ""; + // string aaa = ""; + // if (data[0] != "") + // { + // try + // { + // defectType = data[10]; + // } + // catch (Exception) + // { + + // defectType = "鍒櫧"; + // aaa = "NG"; + // } + + // dataList.Add(new ResultData() + // { + // TimeTip = data[0].Split('-')[0], + // JudgmentResult = aaa, + // DefectType= defectType, + + // }); ; ; + // } + + // } + // return dataList; + //} + + private double GetDistance(double x1, double y1, double x2, double y2) + { + return Math.Sqrt(Math.Pow((x2 - x1), 2) + Math.Pow((y2 - y1), 2)); + } + private double GetAngle(double x1, double y1) + { + return Math.Atan2((y1 - 1050), (x1 - 1050)) * (180 / Math.PI); + } + + } + + 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 = ""; + + + } + + +} diff --git a/P066.Data/Form1.resx b/P066.Data/Form1.resx new file mode 100644 index 0000000..69f943d --- /dev/null +++ b/P066.Data/Form1.resx @@ -0,0 +1,123 @@ +锘�<?xml version="1.0" encoding="utf-8"?> +<root> + <!-- + Microsoft ResX Schema + + Version 2.0 + + The primary goals of this format is to allow a simple XML format + that is mostly human readable. The generation and parsing of the + various data types are done through the TypeConverter classes + associated with the data types. + + Example: + + ... ado.net/XML headers & schema ... + <resheader name="resmimetype">text/microsoft-resx</resheader> + <resheader name="version">2.0</resheader> + <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader> + <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader> + <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data> + <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data> + <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64"> + <value>[base64 mime encoded serialized .NET Framework object]</value> + </data> + <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> + <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value> + <comment>This is a comment</comment> + </data> + + There are any number of "resheader" rows that contain simple + name/value pairs. + + Each data row contains a name, and value. The row also contains a + type or mimetype. Type corresponds to a .NET class that support + text/value conversion through the TypeConverter architecture. + Classes that don't support this are serialized and stored with the + mimetype set. + + The mimetype is used for serialized objects, and tells the + ResXResourceReader how to depersist the object. This is currently not + extensible. For a given mimetype the value must be set accordingly: + + Note - application/x-microsoft.net.object.binary.base64 is the format + that the ResXResourceWriter will generate, however the reader can + read any of the formats listed below. + + mimetype: application/x-microsoft.net.object.binary.base64 + value : The object must be serialized with + : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter + : and then encoded with base64 encoding. + + mimetype: application/x-microsoft.net.object.soap.base64 + value : The object must be serialized with + : System.Runtime.Serialization.Formatters.Soap.SoapFormatter + : and then encoded with base64 encoding. + + mimetype: application/x-microsoft.net.object.bytearray.base64 + value : The object must be serialized into a byte array + : using a System.ComponentModel.TypeConverter + : and then encoded with base64 encoding. + --> + <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> + <xsd:import namespace="http://www.w3.org/XML/1998/namespace" /> + <xsd:element name="root" msdata:IsDataSet="true"> + <xsd:complexType> + <xsd:choice maxOccurs="unbounded"> + <xsd:element name="metadata"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" /> + </xsd:sequence> + <xsd:attribute name="name" use="required" type="xsd:string" /> + <xsd:attribute name="type" type="xsd:string" /> + <xsd:attribute name="mimetype" type="xsd:string" /> + <xsd:attribute ref="xml:space" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="assembly"> + <xsd:complexType> + <xsd:attribute name="alias" type="xsd:string" /> + <xsd:attribute name="name" type="xsd:string" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="data"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> + <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" /> + </xsd:sequence> + <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" /> + <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" /> + <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" /> + <xsd:attribute ref="xml:space" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="resheader"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> + </xsd:sequence> + <xsd:attribute name="name" type="xsd:string" use="required" /> + </xsd:complexType> + </xsd:element> + </xsd:choice> + </xsd:complexType> + </xsd:element> + </xsd:schema> + <resheader name="resmimetype"> + <value>text/microsoft-resx</value> + </resheader> + <resheader name="version"> + <value>2.0</value> + </resheader> + <resheader name="reader"> + <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </resheader> + <resheader name="writer"> + <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </resheader> + <metadata name="folderBrowserDialog1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> + <value>17, 17</value> + </metadata> +</root> \ No newline at end of file diff --git a/P066.Data/P066.Data.csproj b/P066.Data/P066.Data.csproj new file mode 100644 index 0000000..bb373e6 --- /dev/null +++ b/P066.Data/P066.Data.csproj @@ -0,0 +1,83 @@ +锘�<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" /> + <PropertyGroup> + <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> + <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> + <ProjectGuid>{8B8F7749-8823-48C6-B12A-54979E28C10C}</ProjectGuid> + <OutputType>WinExe</OutputType> + <RootNamespace>P066.Data</RootNamespace> + <AssemblyName>P066.Data</AssemblyName> + <TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion> + <FileAlignment>512</FileAlignment> + <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects> + <Deterministic>true</Deterministic> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> + <PlatformTarget>AnyCPU</PlatformTarget> + <DebugSymbols>true</DebugSymbols> + <DebugType>full</DebugType> + <Optimize>false</Optimize> + <OutputPath>bin\Debug\</OutputPath> + <DefineConstants>DEBUG;TRACE</DefineConstants> + <ErrorReport>prompt</ErrorReport> + <WarningLevel>4</WarningLevel> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> + <PlatformTarget>AnyCPU</PlatformTarget> + <DebugType>pdbonly</DebugType> + <Optimize>true</Optimize> + <OutputPath>bin\Release\</OutputPath> + <DefineConstants>TRACE</DefineConstants> + <ErrorReport>prompt</ErrorReport> + <WarningLevel>4</WarningLevel> + </PropertyGroup> + <ItemGroup> + <Reference Include="System" /> + <Reference Include="System.Core" /> + <Reference Include="System.Xml.Linq" /> + <Reference Include="System.Data.DataSetExtensions" /> + <Reference Include="Microsoft.CSharp" /> + <Reference Include="System.Data" /> + <Reference Include="System.Deployment" /> + <Reference Include="System.Drawing" /> + <Reference Include="System.Net.Http" /> + <Reference Include="System.Windows.Forms" /> + <Reference Include="System.Xml" /> + </ItemGroup> + <ItemGroup> + <Compile Include="Form1.cs"> + <SubType>Form</SubType> + </Compile> + <Compile Include="Form1.Designer.cs"> + <DependentUpon>Form1.cs</DependentUpon> + </Compile> + <Compile Include="Program.cs" /> + <Compile Include="Properties\AssemblyInfo.cs" /> + <EmbeddedResource Include="Form1.resx"> + <DependentUpon>Form1.cs</DependentUpon> + </EmbeddedResource> + <EmbeddedResource Include="Properties\Resources.resx"> + <Generator>ResXFileCodeGenerator</Generator> + <LastGenOutput>Resources.Designer.cs</LastGenOutput> + <SubType>Designer</SubType> + </EmbeddedResource> + <Compile Include="Properties\Resources.Designer.cs"> + <AutoGen>True</AutoGen> + <DependentUpon>Resources.resx</DependentUpon> + </Compile> + <None Include="Properties\Settings.settings"> + <Generator>SettingsSingleFileGenerator</Generator> + <LastGenOutput>Settings.Designer.cs</LastGenOutput> + </None> + <Compile Include="Properties\Settings.Designer.cs"> + <AutoGen>True</AutoGen> + <DependentUpon>Settings.settings</DependentUpon> + <DesignTimeSharedInput>True</DesignTimeSharedInput> + </Compile> + </ItemGroup> + <ItemGroup> + <None Include="App.config" /> + </ItemGroup> + <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> +</Project> \ No newline at end of file diff --git "a/P066.Data/P066\346\225\260\346\215\256\345\210\206\346\236\220\347\250\213\345\272\217.csproj" "b/P066.Data/P066\346\225\260\346\215\256\345\210\206\346\236\220\347\250\213\345\272\217.csproj" new file mode 100644 index 0000000..bb373e6 --- /dev/null +++ "b/P066.Data/P066\346\225\260\346\215\256\345\210\206\346\236\220\347\250\213\345\272\217.csproj" @@ -0,0 +1,83 @@ +锘�<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" /> + <PropertyGroup> + <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> + <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> + <ProjectGuid>{8B8F7749-8823-48C6-B12A-54979E28C10C}</ProjectGuid> + <OutputType>WinExe</OutputType> + <RootNamespace>P066.Data</RootNamespace> + <AssemblyName>P066.Data</AssemblyName> + <TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion> + <FileAlignment>512</FileAlignment> + <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects> + <Deterministic>true</Deterministic> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> + <PlatformTarget>AnyCPU</PlatformTarget> + <DebugSymbols>true</DebugSymbols> + <DebugType>full</DebugType> + <Optimize>false</Optimize> + <OutputPath>bin\Debug\</OutputPath> + <DefineConstants>DEBUG;TRACE</DefineConstants> + <ErrorReport>prompt</ErrorReport> + <WarningLevel>4</WarningLevel> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> + <PlatformTarget>AnyCPU</PlatformTarget> + <DebugType>pdbonly</DebugType> + <Optimize>true</Optimize> + <OutputPath>bin\Release\</OutputPath> + <DefineConstants>TRACE</DefineConstants> + <ErrorReport>prompt</ErrorReport> + <WarningLevel>4</WarningLevel> + </PropertyGroup> + <ItemGroup> + <Reference Include="System" /> + <Reference Include="System.Core" /> + <Reference Include="System.Xml.Linq" /> + <Reference Include="System.Data.DataSetExtensions" /> + <Reference Include="Microsoft.CSharp" /> + <Reference Include="System.Data" /> + <Reference Include="System.Deployment" /> + <Reference Include="System.Drawing" /> + <Reference Include="System.Net.Http" /> + <Reference Include="System.Windows.Forms" /> + <Reference Include="System.Xml" /> + </ItemGroup> + <ItemGroup> + <Compile Include="Form1.cs"> + <SubType>Form</SubType> + </Compile> + <Compile Include="Form1.Designer.cs"> + <DependentUpon>Form1.cs</DependentUpon> + </Compile> + <Compile Include="Program.cs" /> + <Compile Include="Properties\AssemblyInfo.cs" /> + <EmbeddedResource Include="Form1.resx"> + <DependentUpon>Form1.cs</DependentUpon> + </EmbeddedResource> + <EmbeddedResource Include="Properties\Resources.resx"> + <Generator>ResXFileCodeGenerator</Generator> + <LastGenOutput>Resources.Designer.cs</LastGenOutput> + <SubType>Designer</SubType> + </EmbeddedResource> + <Compile Include="Properties\Resources.Designer.cs"> + <AutoGen>True</AutoGen> + <DependentUpon>Resources.resx</DependentUpon> + </Compile> + <None Include="Properties\Settings.settings"> + <Generator>SettingsSingleFileGenerator</Generator> + <LastGenOutput>Settings.Designer.cs</LastGenOutput> + </None> + <Compile Include="Properties\Settings.Designer.cs"> + <AutoGen>True</AutoGen> + <DependentUpon>Settings.settings</DependentUpon> + <DesignTimeSharedInput>True</DesignTimeSharedInput> + </Compile> + </ItemGroup> + <ItemGroup> + <None Include="App.config" /> + </ItemGroup> + <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> +</Project> \ No newline at end of file diff --git a/P066.Data/Program.cs b/P066.Data/Program.cs new file mode 100644 index 0000000..69a8b5d --- /dev/null +++ b/P066.Data/Program.cs @@ -0,0 +1,22 @@ +锘縰sing System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace P066.Data +{ + static class Program + { + /// <summary> + /// 搴旂敤绋嬪簭鐨勪富鍏ュ彛鐐广�� + /// </summary> + [STAThread] + static void Main() + { + Application.EnableVisualStyles(); + Application.SetCompatibleTextRenderingDefault(false); + Application.Run(new Form1()); + } + } +} diff --git a/P066.Data/Properties/AssemblyInfo.cs b/P066.Data/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..8aed378 --- /dev/null +++ b/P066.Data/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +锘縰sing System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// 鏈夊叧绋嬪簭闆嗙殑涓�鑸俊鎭敱浠ヤ笅 +// 鎺у埗銆傛洿鏀硅繖浜涚壒鎬у�煎彲淇敼 +// 涓庣▼搴忛泦鍏宠仈鐨勪俊鎭�� +[assembly: AssemblyTitle("P066.Data")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("P066.Data")] +[assembly: AssemblyCopyright("Copyright 漏 2021")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// 灏� ComVisible 璁剧疆涓� false 浼氫娇姝ょ▼搴忛泦涓殑绫诲瀷 +//瀵� COM 缁勪欢涓嶅彲瑙併�傚鏋滈渶瑕佷粠 COM 璁块棶姝ょ▼搴忛泦涓殑绫诲瀷 +//璇峰皢姝ょ被鍨嬬殑 ComVisible 鐗规�ц缃负 true銆� +[assembly: ComVisible(false)] + +// 濡傛灉姝ら」鐩悜 COM 鍏紑锛屽垯涓嬪垪 GUID 鐢ㄤ簬绫诲瀷搴撶殑 ID +[assembly: Guid("8b8f7749-8823-48c6-b12a-54979e28c10c")] + +// 绋嬪簭闆嗙殑鐗堟湰淇℃伅鐢变笅鍒楀洓涓�肩粍鎴�: +// +// 涓荤増鏈� +// 娆$増鏈� +// 鐢熸垚鍙� +// 淇鍙� +// +// 鍙互鎸囧畾鎵�鏈夊�硷紝涔熷彲浠ヤ娇鐢ㄤ互涓嬫墍绀虹殑 "*" 棰勭疆鐗堟湰鍙峰拰淇鍙� +// 鏂规硶鏄寜濡備笅鎵�绀轰娇鐢ㄢ��*鈥�: : +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/P066.Data/Properties/Resources.Designer.cs b/P066.Data/Properties/Resources.Designer.cs new file mode 100644 index 0000000..dd60e96 --- /dev/null +++ b/P066.Data/Properties/Resources.Designer.cs @@ -0,0 +1,71 @@ +锘�//------------------------------------------------------------------------------ +// <auto-generated> +// 姝や唬鐮佺敱宸ュ叿鐢熸垚銆� +// 杩愯鏃剁増鏈�: 4.0.30319.42000 +// +// 瀵规鏂囦欢鐨勬洿鏀瑰彲鑳藉鑷翠笉姝g‘鐨勮涓猴紝濡傛灉 +// 閲嶆柊鐢熸垚浠g爜锛屽垯鎵�鍋氭洿鏀瑰皢涓㈠け銆� +// </auto-generated> +//------------------------------------------------------------------------------ + +namespace P066.Data.Properties +{ + + + /// <summary> + /// 寮虹被鍨嬭祫婧愮被锛岀敤浜庢煡鎵炬湰鍦板寲瀛楃涓茬瓑銆� + /// </summary> + // 姝ょ被鏄敱 StronglyTypedResourceBuilder + // 绫婚�氳繃绫讳技浜� ResGen 鎴� Visual Studio 鐨勫伐鍏疯嚜鍔ㄧ敓鎴愮殑銆� + // 鑻ヨ娣诲姞鎴栧垹闄ゆ垚鍛橈紝璇风紪杈� .ResX 鏂囦欢锛岀劧鍚庨噸鏂拌繍琛� ResGen + // (浠� /str 浣滀负鍛戒护閫夐」)锛屾垨閲嶆柊鐢熸垚 VS 椤圭洰銆� + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources + { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() + { + } + + /// <summary> + /// 杩斿洖姝ょ被浣跨敤鐨勭紦瀛� ResourceManager 瀹炰緥銆� + /// </summary> + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager + { + get + { + if ((resourceMan == null)) + { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("P066.Data.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// <summary> + /// 瑕嗙洊褰撳墠绾跨▼鐨� CurrentUICulture 灞炴�� + /// 浣跨敤姝ゅ己绫诲瀷鐨勮祫婧愮被鐨勮祫婧愭煡鎵俱�� + /// </summary> + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture + { + get + { + return resourceCulture; + } + set + { + resourceCulture = value; + } + } + } +} diff --git a/P066.Data/Properties/Resources.resx b/P066.Data/Properties/Resources.resx new file mode 100644 index 0000000..af7dbeb --- /dev/null +++ b/P066.Data/Properties/Resources.resx @@ -0,0 +1,117 @@ +锘�<?xml version="1.0" encoding="utf-8"?> +<root> + <!-- + Microsoft ResX Schema + + Version 2.0 + + The primary goals of this format is to allow a simple XML format + that is mostly human readable. The generation and parsing of the + various data types are done through the TypeConverter classes + associated with the data types. + + Example: + + ... ado.net/XML headers & schema ... + <resheader name="resmimetype">text/microsoft-resx</resheader> + <resheader name="version">2.0</resheader> + <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader> + <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader> + <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data> + <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data> + <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64"> + <value>[base64 mime encoded serialized .NET Framework object]</value> + </data> + <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> + <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value> + <comment>This is a comment</comment> + </data> + + There are any number of "resheader" rows that contain simple + name/value pairs. + + Each data row contains a name, and value. The row also contains a + type or mimetype. Type corresponds to a .NET class that support + text/value conversion through the TypeConverter architecture. + Classes that don't support this are serialized and stored with the + mimetype set. + + The mimetype is used for serialized objects, and tells the + ResXResourceReader how to depersist the object. This is currently not + extensible. For a given mimetype the value must be set accordingly: + + Note - application/x-microsoft.net.object.binary.base64 is the format + that the ResXResourceWriter will generate, however the reader can + read any of the formats listed below. + + mimetype: application/x-microsoft.net.object.binary.base64 + value : The object must be serialized with + : System.Serialization.Formatters.Binary.BinaryFormatter + : and then encoded with base64 encoding. + + mimetype: application/x-microsoft.net.object.soap.base64 + value : The object must be serialized with + : System.Runtime.Serialization.Formatters.Soap.SoapFormatter + : and then encoded with base64 encoding. + + mimetype: application/x-microsoft.net.object.bytearray.base64 + value : The object must be serialized into a byte array + : using a System.ComponentModel.TypeConverter + : and then encoded with base64 encoding. + --> + <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> + <xsd:element name="root" msdata:IsDataSet="true"> + <xsd:complexType> + <xsd:choice maxOccurs="unbounded"> + <xsd:element name="metadata"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" /> + </xsd:sequence> + <xsd:attribute name="name" type="xsd:string" /> + <xsd:attribute name="type" type="xsd:string" /> + <xsd:attribute name="mimetype" type="xsd:string" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="assembly"> + <xsd:complexType> + <xsd:attribute name="alias" type="xsd:string" /> + <xsd:attribute name="name" type="xsd:string" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="data"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> + <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" /> + </xsd:sequence> + <xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" /> + <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" /> + <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="resheader"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> + </xsd:sequence> + <xsd:attribute name="name" type="xsd:string" use="required" /> + </xsd:complexType> + </xsd:element> + </xsd:choice> + </xsd:complexType> + </xsd:element> + </xsd:schema> + <resheader name="resmimetype"> + <value>text/microsoft-resx</value> + </resheader> + <resheader name="version"> + <value>2.0</value> + </resheader> + <resheader name="reader"> + <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </resheader> + <resheader name="writer"> + <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </resheader> +</root> \ No newline at end of file diff --git a/P066.Data/Properties/Settings.Designer.cs b/P066.Data/Properties/Settings.Designer.cs new file mode 100644 index 0000000..444fee0 --- /dev/null +++ b/P066.Data/Properties/Settings.Designer.cs @@ -0,0 +1,30 @@ +锘�//------------------------------------------------------------------------------ +// <auto-generated> +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// </auto-generated> +//------------------------------------------------------------------------------ + +namespace P066.Data.Properties +{ + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase + { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default + { + get + { + return defaultInstance; + } + } + } +} diff --git a/P066.Data/Properties/Settings.settings b/P066.Data/Properties/Settings.settings new file mode 100644 index 0000000..3964565 --- /dev/null +++ b/P066.Data/Properties/Settings.settings @@ -0,0 +1,7 @@ +锘�<?xml version='1.0' encoding='utf-8'?> +<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)"> + <Profiles> + <Profile Name="(Default)" /> + </Profiles> + <Settings /> +</SettingsFile> diff --git "a/P066\346\225\260\346\215\256\345\210\206\346\236\220\347\250\213\345\272\217.sln" "b/P066\346\225\260\346\215\256\345\210\206\346\236\220\347\250\213\345\272\217.sln" new file mode 100644 index 0000000..303c51c --- /dev/null +++ "b/P066\346\225\260\346\215\256\345\210\206\346\236\220\347\250\213\345\272\217.sln" @@ -0,0 +1,25 @@ +锘� +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.30225.117 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "P066鏁版嵁鍒嗘瀽绋嬪簭", "P066.Data\P066鏁版嵁鍒嗘瀽绋嬪簭.csproj", "{8B8F7749-8823-48C6-B12A-54979E28C10C}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {8B8F7749-8823-48C6-B12A-54979E28C10C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8B8F7749-8823-48C6-B12A-54979E28C10C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8B8F7749-8823-48C6-B12A-54979E28C10C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8B8F7749-8823-48C6-B12A-54979E28C10C}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {9015AB30-DC50-4705-A9A7-45C14C06313E} + EndGlobalSection +EndGlobal -- Gitblit v1.8.0