winform配置文件ini|C# WinForm程序怎么写配置文件

|

A. 这个INI配置文件在C#的Winform程序中怎么读取并把其中的值赋予控件

你在网上找!有个高人专门写了个操作INI文件的类!很好用的!

B. C# WinForm程序怎么写配置文件

//配置文件的源文件(App.Config) <?xml version="1.0" encoding="utf-8" ?> <configuration> <appSettings> <add key="ServerName" value=""/> </appSettings> </configuration> //更新app.config的函数private void UpdateConfig(string Xvalue){ XmlDocument doc = new XmlDocument(); doc.Load(Application.ExecutablePath+".config"); XmlNode node = doc.SelectSingleNode(@"//add[@key='ServerName']"); XmlElement ele = (XmlElement)node; ele.SetAttribute("value",Xvalue); doc.Save(Application.ExecutablePath+".config"); } web.config: /// <summary> /// 向.config文件的appKey结写入信息AppValue 保存设置 /// </summary> /// <param name="AppKey">节点名</param> /// <param name="AppValue">值</param> Private void SetValue(String AppKey,String AppValue){ Xmldocument xDoc=new XmlDocument();xDoc.Load(System.Windows.Forms.Application.ExecutablePath+”.config”);XmlNode xNode;XmlElement xElem1;XmlElement xElem2;xNode=xDoc.SelectSingleNode(“//appSettings”);xElem1=(XmlElement)xNode.SelectSingleNode(“//add[@key=’”+AppKey+”’]”);if(xElem1!=null)xElem1.SetAttribute(“value”,AppValue);else{ xElem2=xdoc.CreateElement(“add”); xElem2.SetAttribute(“key”,AppKey); xElem2.setAttribute(“value”,AppValue); xNode.AppendChild(xElem2);}xDoc.Save(System.Windows.Forms.Application.ExecutablePath+”.config”);}本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/pengfeili/archive/2008/04/19/2306407.aspx

C. 我是一个初学者,谁有 c# winform 中用到ini 配置文件的具体例子,发我一份紧用作学习之用,谢谢~

你得先下载一个kernel32.dll然后在你的项目中添加引用下面是我做过的一个例子,你可以参考一下 public class inifile { #region 导入dll函数 [DllImport("kernel32.dll")] public extern static int GetPrivateProfileIntA(string segname, string keyname, int idefault, string filename); [DllImport("kernel32.dll")] public extern static int GetPrivateProfileStringA(string segname, string keyname, string sdefault, StringBuilder retvalue, int nsize, string filename); [DllImport("kernel32.dll")] public extern static int GetPrivateProfileSectionA(string segname, byte[] sdata, int nsize, string filename); [DllImport("kernel32.dll")] public extern static int WritePrivateProfileSectionA(string segname, byte[] sdata, string filename); [DllImport("kernel32.dll")] public extern static int WritePrivateProfileStringA(string segname, string keyname, string svalue, string filename); [DllImport("kernel32.dll")] public extern static int (byte[] vdata, int ilen, string filename); #endregion private string _path; /// <summary> /// 所有的设置节 /// </summary> public inisegments segments; /// <summary> /// 构造函数 /// </summary> /// <param name="vpath">ini文件路径</param> public inifile(string vpath) { _path = vpath; segments = new inisegments(this); byte[] bufsegs = new byte[32767]; int rel = (bufsegs, 32767, _path); int icnt, ipos; string tmp; if (rel > 0) { icnt = 0; ipos = 0; for (icnt = 0; icnt < rel; icnt++) { if (bufsegs[icnt] == 0x00) { tmp = System.Text.ASCIIEncoding.Default.GetString(bufsegs, ipos, icnt).Trim(); ipos = icnt + 1; if (tmp != "") segments.add(tmp); } } } } /// <summary> /// 获取ini文件路径 /// </summary> public string path { get { return _path; } } /// <summary> /// 读取一个整数型的设置值 /// </summary> /// <param name="segname">设置节名</param> /// <param name="keyname">设置项名</param> /// <param name="idefault">默认值</param> /// <returns>设置值</returns> public int getint(string segname, string keyname, int idefault) { return GetPrivateProfileIntA(segname, keyname, idefault, _path); } /// <summary> /// 读取一个字符串型设置值 /// </summary> /// <param name="segname">设置节名</param> /// <param name="keyname">设置项名</param> /// <param name="sdefault">默认值</param> /// <returns>设置值</returns> public string getstring(string segname, string keyname, string sdefault) { StringBuilder red = new StringBuilder(1024); GetPrivateProfileStringA(segname, keyname, "", red, 1024, _path); return red.ToString(); } /// <summary> /// 写入设置项 /// </summary> /// <param name="segname">设置节名</param> /// <param name="keyname">设置项名</param> /// <param name="vvalue">设置值</param> public void setstring(string segname, string keyname, string vvalue) { WritePrivateProfileStringA(segname, keyname, vvalue, _path); } /// <summary> /// 写入一个设置节 /// </summary> /// <param name="segname">设置节名</param> /// <param name="vdata">数据</param> /// <remarks> /// 数据为多个设置项组成的字符串,每个设置项之间用 "\0" 分割 /// 字符串最后用 "\0\0" 结束 /// </remarks> /// <example> /// writesegment(segname,"\0\0"); 能用于清除一个设置节下的所有设置项 /// </example> public void writesegment(string segname, string vdata) { WritePrivateProfileSectionA(segname, System.Text.ASCIIEncoding.Default.GetBytes(vdata), _path); } /// <summary> /// 读取一个设置节下面的所有设置项 /// </summary> /// <param name="o">要读取的设置节</param> public void getsegment(inisegment o) { byte[] vdata = new byte[32767]; int rlen = GetPrivateProfileSectionA(o.name, vdata, 32767, _path); o.items.Clear(); if (rlen < 1) return; string tmp = ""; int ipos, icnt; ipos = 0; for (icnt = 0; icnt < rlen; icnt++) { if (vdata[icnt] == 0x00) { tmp = System.Text.ASCIIEncoding.Default.GetString(vdata, ipos, icnt – ipos).Trim(); if (tmp != "") { string[] t = tmp.Split('='); if (t.Length <= 1) o.items.add(t[0], ""); else o.items.add(t[0], t[1]); } ipos = icnt + 1; } } } }用的时候就直接实例化这个写好的方法类 进行编辑string COM = new inifile("ini文件地址").segments["分类名称"].items["子项属性"].value这样就可以获取。例如:人(分类名称)身高(子项属性)=100体重(子项属性)=55inifile ini = new inifile("ini文件路径");ini.setstring("需要修改的分类名", "子项", "值");

D. c# winform 关于.ini文件内容的修改与查找

usingSystem;usingSystem.IO;usingSystem.Runtime.InteropServices;usingSystem.Text; namespacePIS.Center.LocalStorage{internalclassIniOperator{//声明kernel32.dll函数privatereadonlyString_iniPath; ///<summary>///构造方法///</summary>publicIniOperator(){_iniPath=Path.Combine(AppDomain.CurrentDomain.BaseDirectory,"local.db"); if(!File.Exists(_iniPath)){using(File.Create(_iniPath)){}}} [DllImport("kernel32")](Stringsection,Stringkey,Stringval,StringfilePath); [DllImport("kernel32")](Stringsection,Stringkey,Stringdef,StringBuilderretVal,intsize,StringfilePath); [DllImport("kernel32")](Stringsection,Stringkey,StringdefVal,Byte[]retVal,intsize,StringfilePath); [DllImport("kernel32")](); ///<summary>///写入INI文件///</summary>///<paramname="section">Section</param>///<paramname="key">Key</param>///<paramname="value">Value</param>publicvoidIniWriteValue(Stringsection,Stringkey,Stringvalue){UInt32snapshot=GetLastError();WritePrivateProfileString(section,key,value,_iniPath); if(snapshot!=GetLastError()){Console.WriteLine("GetLastError:"+GetLastError());}} ///<summary>///读出INI文件///</summary>///<paramname="section">Section</param>///<paramname="key">Key</param>publicStringIniReadValue(Stringsection,Stringkey){varresult=newStringBuilder(256); GetPrivateProfileString(section,key,null,result,256,_iniPath); returnresult.ToString();} publicString[]IniReadSection(){varsectionBytes=newByte[255];GetPrivateProfileString(null,null,"",sectionBytes,255,_iniPath);//编码所有key的String类型 varsectionString=newASCIIEncoding().GetString(sectionBytes); //获取key的数组returnsectionString.Split(newchar[1]{''});} publicString[]IniReadKeys(Stringsection){varkeyBytes=newByte[255];GetPrivateProfileString(section,null,"",keyBytes,255,_iniPath);//编码所有key的String类型 varkeyString=newASCIIEncoding().GetString(keyBytes); //获取key的数组returnkeyString.Split(newchar[1]{''});}}}

参照这个类,对根据section和key取出值,修改后再次写入

E. winform中如何将代码中的连接数据库字符串写成本地INI文件,即是用户能灵活地修改数据库连接地址

.NET一般是写在config文件中。在项目中先添加引用System.Configuration。然后添加新项目:应用程序配置文件App.config。在App.config中可以配置数据库链接地址<?xml version="1.0" encoding="utf-8" ?><configuration> <connectionStrings> <add name="TestConnString" connectionString="Data Source=localhost;Initial Catalog=test;Integrated Security=true;" providerName="System.Data.SqlClient"/> </connectionStrings></configuration>也可以写在appsettins中<?xml version="1.0" encoding="utf-8" ?><configuration> <appSettings> <add key="DBConnStr" value="xxxxx"/> </appSettings></configuration>

F. winform读取ini配置文件,当key对应的值,长度过长时,出现异常

你是要将什么数据存在配置文件里面,可以把内容发给我么?我写个程序试试!一般像ini文件存储信息都不会存储很长的信息的!

G. c# winform 创建ini文件 看详细介绍

FileStream filest = new FileStream(@"c:\abc.txt", FileMode.OpenOrCreate, FileAccess.ReadWrite); //指定操作系统应打开文件(如果文件存在);否则,应创建新文件。如果你INI文件需要有初始内容,那么单独判断该文件是否存在,如果不存在,就单独初始创建一个模板格式的INI。StreamReader sr = new StreamReader(filest,Encoding.GetEncoding("gb2312"));gb2312 是编码格式。支持文本中的简体中文。

H. C# winform 的配置文件用什么保存好,txt,ini.还是xml.

都可以,看你自己选择了txt需要自定义格式xml可以用XmlDocument操作ini要通过DllImport("kernel32")来引入外部函数操作

I. C#读取ini文件的问题(winform)

INI规定里面的数据是分节存放的,必须要有,这个方括号就是节的名称一个INI中可以有多个节,名称不能重复。不同节里的KEY可以重复

J. C# Winform获取INI文件信息失败

你的意思是不是说写了一个C#Windows窗体程序,在程序中读取一个ini账号密码配置文件,又把这程序做成开机自启动,程序会报错?但是直接点击启动应用程序时可以读取ini文件?如果是的话,没人看得到你的源码,谁也回答不了你。真的要有意义的回答,请贴上你的相关代码供参考! 从这个代码上看,既然直接执行程序可以读取Configland.ini文件,那证明读取文件的方法是可以的。但是问题可能出在iniFile.ReadInivalue这个方法中。也许读取文本需要特定的文本格式,但开机时候这个文本的初始化工作没做好。这样吧,你开机以后如果还是显示不能读取文件,先直接把那个ini文件拷贝出来。再直接执行一下应用程序,如果这时候一切正常,在比较一下原先的文件与现在的ini文件有什么不同。如果确实文本不一样,那读取方法就会出错。


赞 (0)