WPF配置文件读取与写入:
1、 在程序根目录下新建文本文档,将后缀名改成.ini文件;(将已存在的Param.dat的后缀改成。ini)
譬如:Param.ini
1) 文档的写法:INI文件由节、键、值组成。
参考链接:(https://www.cnblogs.com/renyuan/p/4111695.html)
2、 VS项目中新建类:INIFile.cs
class INIFile
{
private string filePath;
[DllImport("kernel32")]
private static extern long WritePrivateProfileString(string strSection, string strKey, string strVal, string strFilePath);
[DllImport("kernel32")]
private static extern int GetPrivateProfileString(string strSection, string strKey, string strDef, StringBuilder sbRetVal, int intSize, string strFilePath);
public INIFile(string strFilePath)
{
this.filePath = strFilePath;
}
public void Write(string strSection, string strKey, string strValue)
{
WritePrivateProfileString(strSection, strKey, strValue, this.filePath);
}
public string Read(string strSection, string strKey)
{
StringBuilder sb = new StringBuilder(255);
int i = GetPrivateProfileString(strSection, strKey, "", sb, 255, this.filePath);
return sb.ToString();
}
public string FilePath
{
get { return this.filePath; }
set { this.filePath = value; }
}
}
3、 调用类方法:
//定义
INIFile INI_Param = new INIFile(Environment.CurrentDirectory + @"\Param.ini");
//读取配置文档参数
private bool ReadParam()
{
try
{
float buff;
//ActionLog.WriteLog("Read Setting Information...");
buff = Convert.ToSingle(INI_Param.Read("SysParam", "Range"));
rangeTb.Text = buff.ToString();
buff = Convert.ToSingle(INI_Param.Read("SysParam", "Grade"));
comboBox.Text = buff.ToString();
buff = Convert.ToSingle(INI_Param.Read("SysParam", "MarginError"));
marginErrorTxt.Text = buff.ToString();
return true;
}
catch(Exception ex)
{
ErrorLog.WriteLog("读取参数失败:" + ex.Message.ToString());
return false;
}
}
//读取工位信息
private List<string> readStation()
{
List<string> stationInfo = new List<string>();
stationInfo.Add(INI_Param.Read("StationInfo", "Station1"));
stationInfo.Add(INI_Param.Read("StationInfo", "Station2"));
stationInfo.Add(INI_Param.Read("StationInfo", "Station3"));
stationInfo.Add(INI_Param.Read("StationInfo", "Station4"));
stationInfo.Add(INI_Param.Read("StationInfo", "Station5"));
stationInfo.Add(INI_Param.Read("StationInfo", "Station6"));
stationInfo.Add(INI_Param.Read("StationInfo", "Station7"));
stationInfo.Add(INI_Param.Read("StationInfo", "Station8"));
stationInfo.Add(INI_Param.Read("StationInfo", "Station9"));
stationInfo.Add(INI_Param.Read("StationInfo", "Station10"));
return stationInfo;
}
//将数据更新到配置文档中
private void UpdateParam()
{
try
{
string buff;
buff = rangeTb.Text;
INI_Param.Write("SysParam", "Range", buff);
buff = comboBox.Text;
INI_Param.Write("SysParam", "Grade", buff);
buff = marginErrorTxt.Text;
INI_Param.Write("SysParam", "MarginError", buff);
}
catch(Exception ex)
{
ErrorLog.WriteLog("写入参数失败:" + ex.Message.ToString());
}
}