@byxiaoxie6 年前
08/30
23:26
ini.cs 源代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
namespace ini_config
{
/// <summary>
/// ini文件类
/// </summary>
public class IniFile
{
private string m_FileName;
public string FileName
{
get { return m_FileName; }
set { m_FileName = value; }
}
[DllImport("kernel32.dll")]
private static extern int GetPrivateProfileInt(
string lpAppName,
string lpKeyName,
int nDefault,
string lpFileName
);
[DllImport("kernel32.dll")]
private static extern int GetPrivateProfileString(
string lpAppName,
string lpKeyName,
string lpDefault,
StringBuilder lpReturnedString,
int nSize,
string lpFileName
);
[DllImport("kernel32.dll")]
private static extern int WritePrivateProfileString(
string lpAppName,
string lpKeyName,
string lpString,
string lpFileName
);
/// <summary>
/// 构造函数
/// </summary>
/// <param name="aFileName">Ini文件路径</param>
public IniFile(string aFileName)
{
this.m_FileName = aFileName;
}
/// <summary>
/// 构造函数
/// </summary>
public IniFile()
{ }
/// <summary>
/// [扩展]读Int数值
/// </summary>
/// <param name="section">节</param>
/// <param name="name">键</param>
/// <param name="def">默认值</param>
/// <returns></returns>
public int ReadInt(string section, string name, int def)
{
return GetPrivateProfileInt(section, name, def, this.m_FileName);
}
/// <summary>
/// [扩展]读取string字符串
/// </summary>
/// <param name="section">节</param>
/// <param name="name">键</param>
/// <param name="def">默认值</param>
/// <returns></returns>
public string ReadString(string section, string name, string def)
{
StringBuilder vRetSb = new StringBuilder(2048);
GetPrivateProfileString(section, name, def, vRetSb, 2048, this.m_FileName);
return vRetSb.ToString();
}
/// <summary>
/// [扩展]写入Int数值,如果不存在 节-键,则会自动创建
/// </summary>
/// <param name="section">节</param>
/// <param name="name">键</param>
/// <param name="Ival">写入值</param>
public void WriteInt(string section, string name, int Ival)
{
WritePrivateProfileString(section, name, Ival.ToString(), this.m_FileName);
}
/// <summary>
/// [扩展]写入String字符串,如果不存在 节-键,则会自动创建
/// </summary>
/// <param name="section">节</param>
/// <param name="name">键</param>
/// <param name="strVal">写入值</param>
public void WriteString(string section, string name, string strVal)
{
WritePrivateProfileString(section, name, strVal, this.m_FileName);
}
/// <summary>
/// 删除指定的 节
/// </summary>
/// <param name="section"></param>
public void DeleteSection(string section)
{
WritePrivateProfileString(section, null, null, this.m_FileName);
}
/// <summary>
/// 删除全部 节
/// </summary>
public void DeleteAllSection()
{
WritePrivateProfileString(null, null, null, this.m_FileName);
}
/// <summary>
/// 读取指定 节-键 的值
/// </summary>
/// <param name="section"></param>
/// <param name="name"></param>
/// <returns></returns>
public string IniReadValue(string section, string name)
{
StringBuilder strSb = new StringBuilder(256);
GetPrivateProfileString(section, name, "", strSb, 256, this.m_FileName);
return strSb.ToString();
}
/// <summary>
/// 写入指定值,如果不存在 节-键,则会自动创建
/// </summary>
/// <param name="section"></param>
/// <param name="name"></param>
/// <param name="value"></param>
public void IniWriteValue(string section, string name, string value)
{
WritePrivateProfileString(section, name, value, this.m_FileName);
}
}
}
Form1.cs 窗口源代码:
using 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;
using System.Diagnostics;
using System.Threading;
namespace ByXiaoXie
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
ini_config.IniFile myini = new MSFramework.Common.IniFile(Environment.CurrentDirectory + "\\ByXiaoXie.ini");
numericUpDown1.Value = myini.ReadInt("ByXiaoXie", "Test",0); // 读取整型ini配置文件 myini.ReadInt([配置节], [配置子节点],[默认值])
myini.WriteInt("ByXiaoXie", "Test", cnumericUpDown1.Value); // 写整形ini配置文件 myini.WriteInt([配置节], [配置子节点], [整形值])
textBox1.Text = myini.ReadString("ByXiaoXie", "Text", ""); // 读取文本型ini配置文件 myini.ReadString([配置节], [配置子节点],[默认值])
myini.WriteString("ByXiaoXie", "Text", textBox1.Text); // 写文本型ini配置文件 myini.WriteString([配置节], [配置子节点], [文本型数据])
}
}
}