精华内容
下载资源
问答
  • winform读取配置文件App.config

    千次阅读 2017-12-20 10:23:40
    有时候一些用户的配置需要...1、创建winform项目之后自动会生成App.config文件 这个文件创建后自动就有的,我们可以往里面添加需要的数据: 里面的appSettings节点和子节点就是我们添加上去的 2、读写

    有时候一些用户的配置需要写入在本地,不能每次程序启动都让用户重新设置一下吧。

    下面先说基本用法:

    1、创建winform项目之后自动会生成App.config文件,如果默认没有就对项目右键-新建项-配置文件

    这个文件创建后自动就有的,如果没有就新建一个,我们可以往里面添加需要的数据:

    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
        <startup> 
            <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
        </startup>
        <appSettings>
          <add key="key1" value="hello"/>
          <add key="key2" value="world!"/>
        </appSettings>
    </configuration>

    里面的appSettings节点和子节点就是我们添加上去的

    2、读写

    项目的引用增加System.Configuration,然后在cs文件引入System.Configuration

    然后这样就可以读到数据了:

                string key1 = ConfigurationManager.AppSettings["key1"];
                Debug.WriteLine("key1=" + key1);

    这样修改数据:

                ConfigurationManager.AppSettings.Set("key1","new hello!");
                Debug.WriteLine("new-key1=" + ConfigurationManager.AppSettings["key1"]);
    一切看起来都非常简单,没有什么问题,打印出来显示都是正确的。

    实际上他设置的时候并没有真正写入xml,而是修改了内存中的值而已!


    3、正确的做法应该是按照对待一个普通的xml来进行读写操作,代码如下:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Reflection;
    using System.Text;
    using System.Threading.Tasks;
    using System.Xml;
    
    namespace TestConfig
    {
        class ConfigSettings
        {
            private ConfigSettings() { }
            public static string ReadSetting(string key) 
            {
                //不建议通过这种自带的方式进行读取;如果手动修改了配置文件,则不会第二次读取的时候,依旧是内存中的值。可以通过XML方式进行读取。
                //return ConfigurationSettings.AppSettings[key];
                XmlDocument doc = loadConfigDocument();
    
                XmlNode node = doc.SelectSingleNode("//appSettings");
    
                if (node == null) 
                    throw new InvalidOperationException("appSettings section not found in config file.");
    
                try
                {
                    XmlElement elem = (XmlElement)node.SelectSingleNode(string.Format("//add[@key='{0}']", key));
    
                    if (elem != null) 
                    {
                        return elem.GetAttribute("value");
                    }
                }
                catch 
                {
                    throw;
                }
    
                return "";
            }
    
            public static void WriteSetting(string key, string value) 
            {
                XmlDocument doc = loadConfigDocument();
    
                XmlNode node = doc.SelectSingleNode("//appSettings");
    
                if (node == null)
                    throw new InvalidOperationException("appSettings section not found in config file.");
    
                try
                {
                    XmlElement elem = (XmlElement)node.SelectSingleNode(string.Format("//add[@key='{0}']", key));
    
                    if (elem != null)
                    {
                        elem.SetAttribute("value", value);
                    }
                    else
                    {
                        elem = doc.CreateElement("add");
                        elem.SetAttribute("key", key);
                        elem.SetAttribute("value", value);
                        node.AppendChild(elem);
                    }
                    doc.Save(getConfigFilePath());
                }
                catch 
                {
                    throw;
                }
            }
    
            public static void RemoveSetting(string key) 
            {
                XmlDocument doc = loadConfigDocument();
    
                XmlNode node = doc.SelectSingleNode("//appSettings");
    
                try
                {
                    if (node == null)
                        throw new InvalidOperationException("appSettings section not found in config file.");
                    else
                    {
                        node.RemoveChild(node.SelectSingleNode(string.Format("//add[@key='{0}']", key)));
                        doc.Save(getConfigFilePath());
                    }
                }
                catch(NullReferenceException e) 
                {
                    throw new Exception(string.Format("The key {0} does not exist.", key), e);
                }
            }
    
            private static XmlDocument loadConfigDocument()
            {
                XmlDocument doc = null;
                try
                {
                    doc = new XmlDocument();
                    doc.Load(getConfigFilePath());
                    return doc;
                }
                catch (System.IO.FileNotFoundException e)
                {
                    throw new Exception("No configuration file found.", e);
                }
            }
    
            private static string getConfigFilePath()
            {
                return Assembly.GetExecutingAssembly().Location + ".config";
            }
        }
    }
    



    参考文章:https://www.cnblogs.com/zfanlong1314/p/3623622.html

    展开全文
  • C# winform 使用XML文件

    千次阅读 2019-04-10 10:16:43
    C# Winform 简易XML文件存取 最近开始学C#视窗,记录一下关于最近学习的方法,参考链接如下。 http://www.weisico.com/program/2016/0903/377.html 我用的环境是Visual Studio 2015,最近再练习TCP/IP和COM串口的...

    C# Winform 简易XML文件存取

    最近开始学C#视窗,记录一下关于最近学习的方法,参考链接如下。
    http://www.weisico.com/program/2016/0903/377.html

    我用的环境是Visual Studio 2015,最近再练习TCP/IP和COM串口的传输,想要让他们默认读取参数值,界面如下。

    在这里插入图片描述
    在config设置中自动读入XML文件中的设置,也可对XML进行存取修改的动作

    XML文件

    可以在项目右击>添加>新建项>XML文件 找到
    在这里插入图片描述
    生成后的内部代码

    <?xml version="1.0" encoding="utf-8" ?> 
    

    那因为我们要四种不同参数,分别存放IP、本地端口、
    我们把XML代码改为

    <?xml version="1.0" encoding="utf-8"?>
    <main>
        <ipaddress>192.168.1.57</ipaddress>
        <localport>8080</localport>  
    </main>
    
    

    代码格式与HTML很像、简单来说就是 <变数> 变数值 </变数>

    接着记得把你的XML档案移到项目中bin\Debug里,才能直接使用

    而在form1中,保存与读取的代码也只差在XML中的值传到TextBox中,反之
    但这部分我是参考链接的,有机会再加深解析

    private void BtnRead_Click(object sender, EventArgs e)
            {
                XmlDocument xml = new XmlDocument();
                xml.Load(Application.StartupPath + "//" + "config.xml");//加载xml文件
                XmlNode xn = xml.DocumentElement;
                txIP.Text = xn["ipaddress"].InnerText;
                txPort.Text = xn["localport"].InnerText;
                show.Text = "读取成功";
            }
    
    private void BtnSave_Click(object sender, EventArgs e)
            {
                XmlDocument xml = new XmlDocument();
                xml.Load(Application.StartupPath + "//" + "config.xml");//加载xml文件
                XmlNode xn = xml.DocumentElement;
    
                //ipaddress&localport 都在xml档案中自行定义
                xn["ipaddress"].InnerText = txIP.Text; 
                xn["localport"].InnerText = txPort.Text;
    
                //保存xml文件 (默认地址在bin/debug里)
                xml.Save(Application.StartupPath + "//" + "config.xml");
                show.Text = "保存成功";
            }
    

    忘了补充一点最重要的
    记得要加上

    using System.Xml; //使用XML类
    
    展开全文
  • 程序启动时从服务器读取更新程序的配置文件信息,根据XML文件信息更新程序....
  • Winform中自定义xml配置文件后对节点进行读取与写入: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/100532137 在上面实现对xml配置文件进行节点的读取和写入时,发现一个问题, 就是节点的内容为...

    场景

    Winform中自定义xml配置文件后对节点进行读取与写入:

    https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/100532137

    在上面实现对xml配置文件进行节点的读取和写入时,发现一个问题,

    就是节点的内容为空相应的xml文件中的节点会自动换行,那么下次再进行读取时使用

    InnerText就会读取到\r\n等符号。

    注:

    博客主页:
    https://blog.csdn.net/badao_liumang_qizhi
    关注公众号
    霸道的程序猿
    获取编程相关电子书、教程推送与免费下载。

    实现

    保存时使用的方法是:

     

    public static Boolean  WriteXml(XmlDocument xml , string filePath)
            {
                try
                {
                    xml.Save(filePath);
                    return true;
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.Message);
                    return false;
                }
            }

    如果是对配置文件的显示样式没有要求,可以通过

    using (XmlTextWriter xtw = new XmlTextWriter(file, null)) 
    { 
        xtw.Formatting = Formatting.None; 
        XmlDoc.Save(xtw); 
    }

    实现,但是这样会导致xml的所有节点顺序排列,不会显示成节点结构

    如果既要保持又有xml文件的结构,又要空节点不产生换行,可以在对空节点赋值时,赋予

    一个空格。

    if (yAxisModelList[no - 1].Title.ToString().Equals("") || yAxisModelList[no - 1].Title == null)
                    {
                        xmlNode.SelectSingleNode("title").InnerText = " ";
                        xmlNode.SelectSingleNode("titleKey").InnerText = " ";
                    }
                    else
                    {
                        xmlNode.SelectSingleNode("title").InnerText = yAxisModelList[no - 1].Title;
                        xmlNode.SelectSingleNode("titleKey").InnerText = yAxisModelList[no - 1].TitleKey;
                    }

     

    展开全文
  • 自己写的。 遍历程序根目录一文件夹下的所有皮肤文件读取到工具栏下,并带皮肤记忆功能。
  • C# WinForm项目,Resource文件夹下有一个xml文件运行是需要读取。但是我调试时,却没有再bin debug目录下生成。 解决办法:该xml文件->右键属性->复制到输出目录:始终复制

    C# WinForm项目,Resource文件夹下有一个xml文件运行时需要读取。但是我调试时,却没有在bin debug目录下自动生成。

    解决办法:该xml文件->右键属性->复制到输出目录:始终复制

    展开全文
  • C#WinForm配置文件

    2011-12-06 22:50:59
    在做winform配置文件的时候总是不能实时读取配置数据。因为web程序中的习惯,在web程序中配置文件更改后,应用程序会自动重启一次,于是配置会自动生效。但winform程序没有这个机制,于是Configurati
  • 背景:假如已经开发好了一个管理系统,如OverseaPMS.exe...思路:打开程序OverseaPMS.exe后,分别读取本地配置文件SystemConfig.xml和服务器配置文件ServerUpdate.xml(一般是在登录界面读取配置文件,如果没有就在...
  • 如上图,我们有一个自定义的RevitDevelopment.config文件,该文件需要在启动时被读取,项目启动时,是在bin目录下开始运行的,若该目录下没有对应的.config文件,或者该.config文件不是最新的,可能就会引发错误。...
  • 场景Winform中自定义xml配置文件后对节点进行读取与写入:在上面实现对xml配置文件进行节点的读取和写入时,发现一个问题,就是节点的内容为空相应的xml文件中的节点会自动换行,那么下次再进行读取时使用InnerText...
  • winform c# 自动更新

    千次阅读 2012-10-26 17:12:00
    winform c# 自动更新,首先预览下截图   自动更新一般分3部分: 1、发现更新 2、下载文件 3、复制文件  http://www.cnblogs.com/liubiaocai/archive/2011/07/18/2109183.html 下面对以上3个过程做简单的...
  • winform软件自动登录

    2017-01-04 09:35:01
    第一步,在配置文件添加一个键值对。   第二步,写两个方法,一个是读取,一个是修改的代码  #region 返回该软件是否自登录  public bool autoLogin()  {  String strAutoStar = "";  ...
  • 总体思路如下:先建立数据库,再建立webservice,最后通过winform的按钮来调用服务,达到操作数据库的目的。1.数据库设计数据库名称:sa ,表名称:C在sql sever2008 R2下建立表与字段等。 2.建立webservice2.1启动vs...
  • 关于VS2008或VS2005中数据库配置字符串的三种取法VS2008建立Form程序时,如果添加数据源会在配置文件 app.config中自动写入连接字符串,这个字符串将会在你利用DataSet,SqlDataAparter,SqlConnection等控件时如影随行...
  • 文本读写名称接收代表(含义)默认filepathstring文件路径无sepstring分割符','headerInt/sequence某行做列名infer自动寻找namesarray,列名NoneIndex_colint,sequence,False索引列的位置NonedtypeDict写入数据类型...
  • winform 自动填充功能,一般使用AutoCompleteSource,绑定string[],和文件, 1: private void FormMain_Load(object sender, EventArgs e) 2: { 3: //窗体加载事件处理方法 4: this.InitTextBox(); 5: } 6:7: ...
  • 每天自动执行:采用Winform读取固定文件夹里面的HTML文件并保存到sql数据库
  • 写入的时候, 如果文件不存在会自动创建. 如果对应的键已经存在, 则自动覆盖它的值. 读取的时候, 如果对应的文件不存在, 或者键名不存在, 则返回一个 empty 值. 非常方便 ^_^ 代码如下: // 系统接口类 public static...
  • 最近的一个项目实现了客户端的自动更新功能,目前整个程序正常...客户端程序读取服务器上xml文件的最新的一个版本号、 3.判断版本号,如果服务器上的版本号是最新的,那么就提示客户端需要更新,否则程序正常运行。 ...
  • 第二步:Winfrom程序读取FTP站点服务下载配置文件,解析需要下载的文件列表 第三步:循环下载更新程序文件,下载至指定位置即可 IIS中创建FTP站点略(测试访问如下图) 具体实现可参考如下所示...
  • 在上面的文章中讲述了如何与数据保存载体交互,下面我们来看看配置文件读取和编辑。 对于系统的配置文件,在本系统中个人觉得最好的情况是在软件运行时即读取配置,放置在一个静态对象中,因为发送邮件...
  • C#winform 设置打开文件夹选择对话框folderBrowserDialog自动定位至上一次的选择路径(新手记录)第一步:布局第二步:创建一个公共类第三步:代码第四步:写入配置文件App.config第五步:读取配置文件App.config第...
  • 注:这种方法有一个问题:无法读取不规范的Excel文件(一般是由于第三方工具自动生成的excel文件,如网页、xml另存为的) 1.在项目引用的NuGet安装NOPI;(除了NOPI还有ExcelDataReader、Spire.XLS、EPPlus等其它第...
  • 我们画出写入数据的流程图,如下: <br />上图中还有一个步骤缺失了,在写入数据完成后应该将本次数据写入的结束位置保存到配置文件中,以便下一次数据写入时直接读取。写入对外公开的方法只有一个
  • 读取配置文件中的连接字符串

    千次阅读 2011-04-11 13:26:00
    首先要建立app.config(winForm应用程序)或者web.config(webForm应用程序)文件一般会自动生成。没有就添加-->新建项-->常规-->应用程序配置文件。App.config是.net的通用配置文件,在ASP.NET下也可以使用。 在配
  • 手脚做信息安全需要考取哪些证书的尸网络信息安全图画一道模拟器玩java游戏会扣话费吗肢残r语言官网怎么下载安装包黑暗winform自动读取文件机械delphi盒子弱我python按位置从字符串提取子串的操作是一瞬dart vm进程...
  • 我们知道,在WinForm或者是Console应用程序中,我们可以使用app.config文件,做为程序的配置信息的储存。然后我们使用System.Configuration类进行调用,读取或更新等。当我们编译这个程序时,比如我们的程序为TS....
  • .net c# winform控件 源码

    2009-12-01 19:06:30
    picturebox自动加载文件及保存.以及升级文件读取

空空如也

空空如也

1 2 3 4 5
收藏数 87
精华内容 34
关键字:

winform自动读取文件