c# xml 参数读取的复杂使用

这篇具有很好参考价值的文章主要介绍了c# xml 参数读取的复杂使用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

完整使用2

生产厂家里面包含很多规格型号,一个规格型号里面包含很多出厂序列号,点击下一步如果检测到填充的和保存的不一样 就新增一条(如检测到生产厂家相同,但是规格型号不同,就新增一组规格型号)。
界面一:新增界面
c# xml 参数读取的复杂使用,c#,xml,windows
界面2 删除界面
c# xml 参数读取的复杂使用,c#,xml,windows

界面一:新增界面

load

其中 因为直接使用了 节点名字作为保存,而节点名字是不能出现数字字符开头的,因此统一在各节点之前加“一”,显示的时候再给他去掉

        private void DeviceEntering_Load(object sender, EventArgs e)
        { 
        //刷新
            intRefresh();
        }
        public static  List<string> changjia = new List<string>();
        public static  List<string> xinghao  = new List<string>();
        public static  List<string> xvlie    = new List<string>();
        public static List<string> testname = new List<string>();
        public static List<string> reportname = new List<string>();
        static string path = Directory.GetCurrentDirectory() + "\\Config\\测试参数.xml";
        public static string pathxml = @"C:\SEET\test.xml";
        public static string pathname = @"C:\SEET\testName.xml";
        public static string pathreport = @"C:\SEET\testReport.xml";
        public static string pathmulu = @"C:\SEET\";
      public static void intRefresh ()
        {
            //该方法是判断该路径下有没有该文件夹,注意并不能判断某个文件是否存在
            if (!Directory.Exists(pathmulu))
            {
                DirectoryInfo directoryInfo = new DirectoryInfo(pathmulu);
                directoryInfo.Create();
            }
            //该方法是判断该路径下有没有该文件,注意一定要加上文件后缀名
            if (!File.Exists(pathxml))
            {
                CreateXml();
            }
            if (!File.Exists(pathname))
            {
                XmlDocument Doc = new XmlDocument();
                XmlDeclaration xnode = Doc.CreateXmlDeclaration("1.0", "UTF-8", "");
                Doc.AppendChild(xnode);

                XmlElement root = Doc.CreateElement("测试人员");
                Doc.AppendChild(root);

                XmlElement TestName = Doc.CreateElement("一测试员");
                root.AppendChild(TestName);
                TestName.InnerText = "张三";

                Doc.Save(pathname);
            }

            if (!File.Exists(pathreport))
            {
                XmlDocument Docc = new XmlDocument();
                XmlDeclaration xnode = Docc.CreateXmlDeclaration("1.0", "UTF-8", "");
                Docc.AppendChild(xnode);

                XmlElement root = Docc.CreateElement("报告保存");
                Docc.AppendChild(root);

                XmlElement TestName = Docc.CreateElement("气腹机测试报告模板-001.docx");
                root.AppendChild(TestName);
                TestName.InnerText = "张三";

                Docc.Save(pathreport);
            }


            //实例化一个xml操作对象
            XmlDocument xDoc = new XmlDocument();
            xDoc.Load(pathxml);
            XmlNode rNode = xDoc.SelectSingleNode("气腹机");//.SelectSingleNode:取到第一个和表达式匹配的节点
            XmlNodeList rlist = rNode.ChildNodes; //获取节点的所有子节点

                                                  // //取根结点
                                                  // var root = xmlDoc.DocumentElement;//取到根结点
                                                  取指定的单个结点
                                                  //XmlNode oldChild = xmlDoc.SelectSingleNode("BookStore/NewBook");
                                                  取指定的结点的集合
                                                  //XmlNodeList nodes = xmlDoc.SelectNodes("BookStore/NewBook");


            int i = 0, j = 0, k = 0;
            changjia.Clear();
            xinghao.Clear();
            xvlie.Clear();
            foreach (XmlNode r in rlist)
            {
                string name = r.Name;//获取节点的限定名称
                name = name.Substring(1, name.Length - 1);
                //changjia.Add(name);

                changjia.Add(name);
                log.SaveLog("节点:" + name.Substring(1, name.Length - 1));
                i++;
                XmlNodeList list2 = r.ChildNodes;
                foreach (XmlNode item in list2)
                {
                    string name2 = item.Name;
                    name2 = name2.Substring(1, name2.Length - 1);
                    if (name2.Equals("text"))
                    {
                        continue;
                    }
                    j++;
                    xinghao.Add(name + "*" + name2 + "*");
                    log.SaveLog("节点2:" + name2);

                    XmlNodeList list3 = item.ChildNodes;
                    foreach (XmlNode item2 in list3)
                    {
                        k++;
                        string name3 = item2.Name;
                        name3 = name3.Substring(1, name3.Length - 1);
                        if (name3.Equals("text"))
                        {
                            continue;
                        }
                        xvlie.Add(name + "*" + name2 + "*" + name3);
                        //uiComboBox3.Items.Add(name3);
                        log.SaveLog("节点3:" + name3);
                    }
                }
            }


            string[] nameBuff = new string[500];
            Array.Clear(nameBuff, 0, nameBuff.Length);
            nameBuff = SeakName(ref xinghao, Form1.de.uiComboBox1.Text);
            Form1.de.uiComboBox2.Items.Clear();
            Form1.de.uiComboBox2.Text = GetTestPata().Type1;
            for (int jj = 0; jj < nameBuff.Length; jj++)
            {
                if (string.IsNullOrEmpty(nameBuff[jj]))
                {
                    continue;
                }
                Form1.de.uiComboBox2.Items.Add(nameBuff[jj]);
                log.SaveLog("load:uiComboBox2.Items:" + nameBuff[jj]);
            }

            Array.Clear(nameBuff, 0, nameBuff.Length);
            nameBuff = SeakName(ref xvlie, Form1.de.uiComboBox1.Text, Form1.de.uiComboBox2.Text);
            Form1.de.uiComboBox3.Items.Clear();
            Form1.de.uiComboBox3.Text = GetTestPata().Serial1;
            for (int jjj = 0; jjj < nameBuff.Length; jjj++)
            {
                if (string.IsNullOrEmpty(nameBuff[jjj]))
                {
                    continue;
                }
                Form1.de.uiComboBox3.Items.Add(nameBuff[jjj]);
                log.SaveLog("load:uiComboBox3.Items:" + nameBuff[jjj]);
            }
            xDoc.Save(pathxml);//修改好了 记得保存 才会生效

            Form1.de.uiComboBox1.Items.Clear();
            foreach (var item in changjia)
            {
                Form1.de.uiComboBox1.Items.Add(item);
            }
            Form1.de.uiComboBox1.Text = GetTestPata().Manufacturer1;

            try
            {
                testname.Clear();
                XmlDocument xx = new XmlDocument();
                xx.Load(pathname);
                XmlNode rr = xx.SelectSingleNode("测试人员");//.SelectSingleNode:取到第一个和表达式匹配的节点
                XmlNodeList ll = rr.ChildNodes; //获取节点的所有子节点
                Form1.de.uiComboBox4.Items.Clear();
                foreach (XmlNode item in ll)
                {
                    string name11 = item.Name;
                    Form1.de.uiComboBox4.Items.Add(name11.Substring(1, name11.Length - 1));
                    testname.Add(name11.Substring(1, name11.Length - 1));
                }
                Form1.de.uiComboBox4.Text = GetTestPata().Person1;
                xx.Save(pathname);//修改好了 记得保存 才会生效
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
                throw;
            }

            try
            {
                reportname.Clear();
                XmlDocument xx = new XmlDocument();
                xx.Load(pathreport);
                XmlNode rr = xx.SelectSingleNode("报告保存");//.SelectSingleNode:取到第一个和表达式匹配的节点
                XmlNodeList ll = rr.ChildNodes; //获取节点的所有子节点
                foreach (XmlNode item in ll)
                {
                    string name11 = item.Name;
                    reportname.Add(name11);
                }
                xx.Save(pathreport);//修改好了 记得保存 才会生效
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
                throw;
            }

        }

生产厂家indexchange

        private void uiComboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            
            log.SaveLog("ComboBox1 index");
            string[] nameBuff = new string[500];

            uiComboBox2.Items.Clear();
            Array.Clear(nameBuff, 0, nameBuff.Length);
            nameBuff = SeakName(ref xinghao, uiComboBox1.Text);
            uiComboBox2.Text = nameBuff[0];
            for (int jj = 0; jj < nameBuff.Length; jj++)
            {
                if (string.IsNullOrEmpty(nameBuff[jj]))
                {
                    continue;
                }
                uiComboBox2.Items.Add(nameBuff[jj]);
                log.SaveLog("index:uiComboBox2.Items:" + nameBuff[jj]);
            }

            Array.Clear(nameBuff, 0, nameBuff.Length);
            uiComboBox3.Items.Clear();
            nameBuff = SeakName(ref xvlie, uiComboBox1.Text, uiComboBox2.Text);
            uiComboBox3.Text = nameBuff[0];
            for (int jjj = 0; jjj < nameBuff.Length; jjj++)
            {
                if (string.IsNullOrEmpty(nameBuff[jjj]))
                {
                    continue;
                }
                uiComboBox3.Items.Add(nameBuff[jjj]);
                log.SaveLog("index:uiComboBox3.Items:" + nameBuff[jjj]);
            }
        }

规格型号indexchange

        private void uiComboBox2_SelectedIndexChanged(object sender, EventArgs e)
        {
            log.SaveLog("ComboBox2 index");
            string[] nameBuff = new string[500];
            Array.Clear(nameBuff, 0, nameBuff.Length);

            uiComboBox3.Items.Clear();
            Array.Clear(nameBuff,0, nameBuff.Length);
            nameBuff = SeakName(ref xvlie, uiComboBox1.Text, uiComboBox2.Text);
            uiComboBox3.Text = nameBuff[0];
            for (int jj = 0; jj < nameBuff.Length; jj++)
            {
                if (string.IsNullOrEmpty(nameBuff[jj]))
                {
                    continue;
                }
                uiComboBox3.Items.Add(nameBuff[jj]);
            }
        }

下一步

也就是比对新增功能

       private void uiButton9_Click(object sender, EventArgs e)
        {
            string[] nameBuff=new string[500];
            string[] nameBuff2 = new string[500];
            Array.Clear(nameBuff, 0, nameBuff.Length);
            Array.Clear(nameBuff2, 0, nameBuff.Length);
            bool add  = true;
            bool add2 = true;
            bool add3 = true;
            bool add4 = true;
            if (WhetherEmpty()==true)
            {
                XmlDocument xDoc = new XmlDocument();
                xDoc.Load(pathxml);
                for (int i = 0; i < changjia.Count; i++)
                {
                    //修改
                    if (uiComboBox1.Text == changjia[i])
                    {
                        nameBuff = SeakName(ref xinghao, uiComboBox1.Text);                    
                        for (int ii = 0; ii < nameBuff.Length; ii++)
                        {
                            if (string.IsNullOrEmpty(nameBuff[ii]))
                            {
                                continue;
                            }
                            if (nameBuff[ii]== uiComboBox2.Text)
                            {
                                //判断第三项是否相等
                                nameBuff2 = SeakName(ref xvlie, uiComboBox1.Text,uiComboBox2.Text);                          
                                for (int iii = 0; iii < nameBuff2.Length; iii++)
                                {
                                    if (nameBuff2[iii] ==uiComboBox3.Text)
                                    {
                                        //什么都不用做
                                        add3=false; 
                                        break;
                                    }
                                }
                                if (add3==true)
                                {                                 
                                    //增加一个第三项
                                    string xpath = "气腹机/" + "一"+uiComboBox1.Text +"/"+ "一"+uiComboBox2.Text;
                                    XmlNode newnode = xDoc.SelectSingleNode(xpath);//取指定的单个结点
                                    XmlElement newmember = xDoc.CreateElement("一"+uiComboBox3.Text);
                                    newnode.AppendChild(newmember);
                                    xDoc.Save(pathxml);
                                }
                                add2= false;
                                break;
                            }
                        }
                        if (add2==true)
                        {
                            //新增一个第二项
                            string xpath = "气腹机/" + "一" + uiComboBox1.Text;
                            XmlNode newnode = xDoc.SelectSingleNode(xpath);
                            XmlElement newmember = xDoc.CreateElement("一" + uiComboBox2.Text);
                            newnode.AppendChild(newmember);
                            XmlElement newmember1 = xDoc.CreateElement("一" + uiComboBox3.Text);
                            newmember.AppendChild(newmember1);
                            xDoc.Save(pathxml);
                        }
                        add= false;
                        break;
                    }
                }
                if (add==true)
                {
                    新增一列
                    //XmlDocument xDoc = new XmlDocument();
                    //xDoc.Load(pathxml);

                    XmlElement root = xDoc.DocumentElement;

                    //第一级子节点
                    XmlElement FirstNode1 = xDoc.CreateElement("一"+uiComboBox1.Text);
                    root.AppendChild(FirstNode1);

                    //添加二级子节点
                    XmlElement TwoNode = xDoc.CreateElement("一" + uiComboBox2.Text);
                    FirstNode1.AppendChild(TwoNode);

                    //添加三级子节点
                    XmlElement ThreeNode = xDoc.CreateElement("一" + uiComboBox3.Text);
                    TwoNode.AppendChild(ThreeNode);

                    xDoc.Save(pathxml);
                }

                XmlDocument xx = new XmlDocument();
                xx.Load(pathname);
                
                for (int n = 0; n < testname.Count; n++)
                {
                    if (testname[n] == uiComboBox4.Text)
                    {
                        //什么都不用做
                        add4 = false;
                        break;
                    }
                }
                if (add4 == true)
                {
                    XmlNode rr = xx.SelectSingleNode("测试人员");
                    XmlElement newname = xx.CreateElement("一"+ uiComboBox4.Text);
                    rr.AppendChild(newname);
                }

                xx.Save(pathname);//修改好了 记得保存 才会生效

                GetTestPata().Manufacturer1= uiComboBox1.Text;
                GetTestPata().Type1= uiComboBox2.Text;
                GetTestPata().Serial1= uiComboBox3.Text;
                GetTestPata().Person1= uiComboBox4.Text;
                ArgCfgXmlObj.SetPtr();

                Program.mainObj.but();
                Form1.loadform(new TestProj());

                intRefresh();

                //GetTestPata().Person1 = Person[0];
                //GetTestPata().Person2 = Person[1];
                //GetTestPata().Person3 = Person[2];
                //GetTestPata().Person4 = Person[3];
                //ArgCfgXmlObj.SetPtr();
            }
        }

界面2:删除界面

       private void UserSet_Load(object sender, EventArgs e)
        {
            mulupath = DeviceEntering.GetTestPata().Savemulu;
            textBox1.Text = DeviceEntering.GetTestPata().Savemulu;

            textBox2.Text = DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss");

            uiComboBox1.Text= reportFile;
            
            foreach(string item in DeviceEntering.reportname)
            {
                uiComboBox1.Items.Add(item);
            }

            load();
            load2();

        }
      public void load()
        {
            string[] nameBuff = new string[500];
            DeviceEntering.intRefresh();
            uiComboBox4.Items.Clear();
            foreach (var item in DeviceEntering.changjia)
            {
                uiComboBox4.Items.Add(item);
            }
            uiComboBox4.Text = DeviceEntering.changjia[0];

            Array.Clear(nameBuff, 0, nameBuff.Length);
            nameBuff = DeviceEntering.SeakName(ref DeviceEntering.xinghao, uiComboBox4.Text);

            uiComboBox7.Items.Clear();
            uiComboBox7.Text = nameBuff[0];
            for (int jj = 0; jj < nameBuff.Length; jj++)
            {
                if (string.IsNullOrEmpty(nameBuff[jj]))
                {
                    continue;
                }
                uiComboBox7.Items.Add(nameBuff[jj]);
            }

            Array.Clear(nameBuff, 0, nameBuff.Length);
            nameBuff = DeviceEntering.SeakName(ref DeviceEntering.xvlie, uiComboBox4.Text, uiComboBox7.Text);
            uiComboBox8.Items.Clear();
            uiComboBox8.Text = nameBuff[0];
            for (int jjj = 0; jjj < nameBuff.Length; jjj++)
            {
                if (string.IsNullOrEmpty(nameBuff[jjj]))
                {
                    continue;
                }
                uiComboBox8.Items.Add(nameBuff[jjj]);
                //log.SaveLog("load:uiComboBox3.Items:" + nameBuff[jjj]);
            }


        }

        public void load2()
        {
            //该方法是判断该路径下有没有该文件夹,注意并不能判断某个文件是否存在
            if (!Directory.Exists(DeviceEntering.pathmulu))
            {
                DirectoryInfo directoryInfo = new DirectoryInfo(DeviceEntering.pathmulu);
                directoryInfo.Create();
            }
            if (!File.Exists(DeviceEntering.pathname))
            {
                XmlDocument Doc = new XmlDocument();
                XmlDeclaration xnode = Doc.CreateXmlDeclaration("1.0", "UTF-8", "");
                Doc.AppendChild(xnode);

                XmlElement root = Doc.CreateElement("测试人员");
                Doc.AppendChild(root);

                XmlElement TestName = Doc.CreateElement("一测试员");
                root.AppendChild(TestName);
                TestName.InnerText = "张三";
                Doc.Save(DeviceEntering.pathname);
            }

            XmlDocument xx = new XmlDocument();
            xx.Load(DeviceEntering.pathname);
            XmlNode rr = xx.SelectSingleNode("测试人员");//.SelectSingleNode:取到第一个和表达式匹配的节点
            XmlNodeList ll = rr.ChildNodes; //获取节点的所有子节点
            uiComboBox5.Items.Clear();
            foreach (XmlNode item in ll)
            {
                string name = item.Name;
                uiComboBox5.Items.Add(name.Substring(1,name.Length-1));
                DeviceEntering.testname.Add(name.Substring(1, name.Length - 1));
            }
            uiComboBox5.Text = DeviceEntering.testname[0];
            xx.Save(DeviceEntering.pathname);//修改好了 记得保存 才会生效
        }

生产厂家删除、清空

删除

            XmlDocument xDoc = new XmlDocument();
            xDoc.Load(DeviceEntering.pathxml);

            string xpath = "气腹机" ;    
            string pathChild = "气腹机/" +"一"+ uiComboBox4.Text;

            //XmlNode newnode = xDoc.SelectSingleNode(xpath);
            XmlNode newnode = xDoc.DocumentElement;//取到根结点 就等于上面这样写
            XmlNode chilenode = xDoc.SelectSingleNode(pathChild);
            newnode.RemoveChild(chilenode);
            xDoc.Save(DeviceEntering.pathxml);

            load();

清空

        private void uiButton6_Click(object sender, EventArgs e)
        {
            File.Delete(DeviceEntering.pathxml);

            load();
        }

规格型号删除、清空

删除

        private void uiButton9_Click(object sender, EventArgs e)
        {
            XmlDocument xDoc = new XmlDocument();
            xDoc.Load(DeviceEntering.pathxml);
            string xpath = "气腹机/" + "一" + uiComboBox4.Text;
            XmlNode newnode = xDoc.SelectSingleNode(xpath);
            //XmlNode newnode = xDoc.DocumentElement;//这里不能这样写了  因为要子集才行
            string pathChild = "气腹机/" + "一" + uiComboBox4.Text + "/" + "一" + uiComboBox7.Text;
            XmlNode chilenode = xDoc.SelectSingleNode(pathChild);
            MessageBox.Show(chilenode.Name);
            newnode.RemoveChild(chilenode);

            xDoc.Save(DeviceEntering.pathxml);
            load();

        }

清空

        private void uiButton8_Click(object sender, EventArgs e)
        {
            XmlDocument xDoc = new XmlDocument();
            xDoc.Load(DeviceEntering.pathxml);

            string xpath = "气腹机/" + "一" + uiComboBox4.Text;
            XmlNode newnode = xDoc.SelectSingleNode(xpath);
            newnode.RemoveAll();

            xDoc.Save(DeviceEntering.pathxml);
            load();

        }

序列号删除清空

删除

        private void uiButton11_Click(object sender, EventArgs e)
        {
            XmlDocument xDoc = new XmlDocument();
            xDoc.Load(DeviceEntering.pathxml);

            string xpath = "气腹机/" + "一" + uiComboBox4.Text + "/" + "一" + uiComboBox7.Text;
            XmlNode newnode = xDoc.SelectSingleNode(xpath);

            string pathChild = "气腹机/" + "一" + uiComboBox4.Text + "/" + "一" + uiComboBox7.Text + "/" + "一" + uiComboBox8.Text;
            XmlNode chilenode = xDoc.SelectSingleNode(pathChild);

            newnode.RemoveChild(chilenode);

            xDoc.Save(DeviceEntering.pathxml);

            load();
        }

清空文章来源地址https://www.toymoban.com/news/detail-725557.html

        private void uiButton10_Click(object sender, EventArgs e)
        {
            XmlDocument xDoc = new XmlDocument();
            xDoc.Load(DeviceEntering.pathxml);

            string pathChild = "气腹机/" + "一" + uiComboBox4.Text + "/" + "一" + uiComboBox7.Text ;
            XmlNode chilenode = xDoc.SelectSingleNode(pathChild);

            chilenode.RemoveAll();

            xDoc.Save(DeviceEntering.pathxml);

            load();
        }

closed

        private void UserSet_FormClosed(object sender, FormClosedEventArgs e)
        {
            DeviceEntering.GetTestPata().Manufacturer1 = uiComboBox4.Text;
            DeviceEntering.GetTestPata().Type1 = uiComboBox7.Text;
            DeviceEntering.GetTestPata().Serial1 = uiComboBox8.Text;
            DeviceEntering.GetTestPata().Person1 = uiComboBox5.Text;
            DeviceEntering.GetTestPata().Reportmulu = uiComboBox1.Text;
            DeviceEntering.ArgCfgXmlObj.SetPtr();

            try
            {
                XmlDocument xx = new XmlDocument();
                xx.Load(DeviceEntering.pathreport);
                bool add = true;
                for (int n = 0; n < DeviceEntering.reportname.Count; n++)
                {
                    if (DeviceEntering.reportname[n] == uiComboBox1.Text)
                    {
                        //什么都不用做
                        add = false;
                        break;
                    }
                }
                if (add == true)
                {
                    XmlNode rr = xx.SelectSingleNode("报告保存");
                    XmlElement newname = xx.CreateElement(uiComboBox1.Text);
                    rr.AppendChild(newname);
                }
                xx.Save(DeviceEntering.pathreport);
            }
            catch (Exception)
            {

                throw;
            }
            DeviceEntering.intRefresh();

        }

到了这里,关于c# xml 参数读取的复杂使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 列化复杂的xml对应的类

    好的,可以试着为一个复杂的XML生成对应的C#类。这里我就简单的XML为例: 针对上述XML,我们可以使用C#中的XML序列化特性生成类定义: 这里通过XmlRoot, XmlElement和XmlArray等特性,我们可以清晰的定义出XML与类的映射关系。 如果XML结构更加复杂,包含更多层级关系,同样可以使用嵌套的

    2024年02月09日
    浏览(37)
  • unity C# 读取shp并生成mesh(ShpLoader使用)

    声明 使用 : Unity读取并解析Shapefile地图文件_SuperWiwi的博客-CSDN博客_unity读取shp 结构参考: 文件头_GIS基础工具篇01C#读写shp矢量文件_贱贱猪66的博客-CSDN博客 github:  https://github.com/EIdeallab/ShpLoader 注意问题:拿到数据后先Arcgis打开 1 编码格式   更多情况是数据来源自其它地方

    2024年02月11日
    浏览(56)
  • C#中使用OpenCvSharp4库读取本地图像并显示

    OpenCvSharp4是基于.NET 的 OpenCV 包装器,OpenCV源代码是采用C和C++写的,目前对于C++和Python开发者相对来说比较友好,对于Python开发者而言官方提供了opencv-python使用。 首选我们使用Visual Studio 2022创建一个.Net控制台程序 ReadImageUseOpenCvSharp4 ,然后安装 OpenCvSharp4 安装包,我们在Vis

    2024年04月16日
    浏览(41)
  • 使用netdxf(C#)框架实现dxf文件读取与导出坐标

    窗体FormDxfTool.Designer.cs设计器源程序如下: 关键结构 netDxf.Vector3             可以认为是立体三维坐标(x,y,z) 关键结构 netDxf.Vector2             可以认为是平面二维坐标(x,y) DxfDocument用于读写dxf文件       关键函数Load()用于加载文件       添加实体:dxfDocument.Entities.Add(Ent

    2024年01月16日
    浏览(173)
  • c#使用s7netplus读取plc数据

    关于plc仿真设置请看上一篇文章:http://t.csdn.cn/XQp2P 首先按转nuget包:S7netplus     这是官网:https://github.com/S7NetPlus/s7netplus/wiki 这里的环境使用的是.net core 控制台程序 首先在使用的地方引用 其中数据类型: 数据类涉及到最后的转换。需要留意 以上一篇文章博途数据块为例:

    2024年01月25日
    浏览(34)
  • C#图像处理-使用OpenCVSharp读取或修改图像像素值

    图像处理是计算机视觉领域的重要应用之一,而OpenCV是一个强大且广泛使用的开源计算机视觉库。在C#中,我们可以通过OpenCVSharp库来实现图像处理的各种功能,包括读取和修改图像像素值。本文将介绍如何使用OpenCVSharp来读取和修改图像像素值,并提供相应的源代码。 首先,

    2024年04月28日
    浏览(75)
  • C# 读取网络上下行(不要使用性能计数器的方式)

    C# 读取网络上下行有多种方式,其中有一种是使用 System.Net.NetworkInformation 命名空间中的 NetworkInterface 类和 PerformanceCounter 类,该方式其实读的是windows系统的性能计数器中的Network Interface类别的数据。 方式如下: 但是使用性能计数器有时候会抛异常: 打开“性能监视器”,点

    2024年02月06日
    浏览(51)
  • 【OPC UA】使用C#读取OPC UA电液控数据

    OPC UA与OPC DA协议常见于工业生产中使用,例如煤矿的综采支架电液控系统。OPC UA 是OPC 的后继标准,只是后面增加了UA ,意指”统一架构”(Unified Architecture).它的主要目的是摆脱windows! 实现与平台无关的OPC.从OPC 演进到OPC UA,它的目的并没有改变,依然是为了实现分布式控制系统中

    2024年02月15日
    浏览(40)
  • C#使用第三方库ExcelDataReader读取excel数据并呈现

    之前有使用Oledb读取Excel的代码:C#读取excel数据并呈现 使用这种方式读取存在需要安装数据库引擎的隐患(如需要自取)

    2024年02月13日
    浏览(43)
  • 【游戏开发算法每日一记】使用随机prime算法生成错综复杂效果的迷宫(C#,C++和Unity版)

    👨‍💻个人主页 :@元宇宙-秩沅 👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍💻 本文由 秩沅 原创 👨‍💻 收录于专栏 :Unity基础实战 1.首先全部判定为墙,最外的为路包裹墙( 类似于防止数组越界 ) 2.红色为它的检测范围(假设检测点在如图所示的位置)—

    2024年02月05日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包