104 lines
3.5 KiB
C#
104 lines
3.5 KiB
C#
using System;
|
||
using System.Collections.Generic;
|
||
using System.IO;
|
||
using System.Linq;
|
||
using System.Runtime.InteropServices;
|
||
using System.Text;
|
||
using System.Threading.Tasks;
|
||
using System.Windows.Forms;
|
||
|
||
namespace Cowain.Bake.Common.Core
|
||
{
|
||
public class INIHelper
|
||
{
|
||
[DllImport("kernel32")]
|
||
private static extern long WritePrivateProfileString(string section, string key, string val, string filepath);
|
||
[DllImport("kernel32")]
|
||
private static extern int GetPrivateProfileString(string section, string key, string def, StringBuilder retval, int size, string filePath);
|
||
|
||
//ini文件名称
|
||
private static string inifilename = "Config.ini";
|
||
//获取ini文件路径
|
||
public static string inifilepath = Application.StartupPath + "\\" + inifilename;
|
||
|
||
public static string ReadValue(string key)
|
||
{
|
||
StringBuilder s = new StringBuilder(1024);
|
||
GetPrivateProfileString("Config", key, "", s, 1024, inifilepath);
|
||
return s.ToString();
|
||
}
|
||
public static bool ReadBool(string section, string key, bool value = false)
|
||
{
|
||
bool reVal = false;
|
||
StringBuilder s = new StringBuilder(1024);
|
||
GetPrivateProfileString(section, key, "", s, 1024, inifilepath);
|
||
bool b = bool.TryParse(s.ToString(), out reVal);
|
||
if (b)
|
||
{
|
||
return reVal;
|
||
}
|
||
return value;
|
||
}
|
||
|
||
public static string ReadString(string section, string key, string value = "")
|
||
{
|
||
StringBuilder s = new StringBuilder(1024);
|
||
GetPrivateProfileString(section, key, "", s, 1024, inifilepath);
|
||
if (0 == s.ToString().Length)
|
||
{
|
||
return value;
|
||
}
|
||
return s.ToString();
|
||
}
|
||
|
||
public static int ReadInt(string section, string key, int nDefault = 0)
|
||
{
|
||
// 每次从ini中读取多少字节
|
||
System.Text.StringBuilder temp = new StringBuilder(1024);
|
||
// section=配置节,key=键名,temp=上面,path=路径
|
||
GetPrivateProfileString(section, key, "", temp, 1024, inifilepath);
|
||
string t = temp.ToString();
|
||
int v = 0;
|
||
if (int.TryParse(t, out v))
|
||
{
|
||
return v;
|
||
}
|
||
return nDefault;
|
||
}
|
||
|
||
public static float ReadFloat(string section, string key, float fDefault = 0)
|
||
{
|
||
// 每次从ini中读取多少字节
|
||
System.Text.StringBuilder temp = new System.Text.StringBuilder(255);
|
||
// section=配置节,key=键名,temp=上面,path=路径
|
||
GetPrivateProfileString(section, key, "", temp, 255, inifilepath);
|
||
string t = temp.ToString();
|
||
float v = 0;
|
||
if (float.TryParse(t, out v))
|
||
{
|
||
return v;
|
||
}
|
||
return fDefault;
|
||
}
|
||
|
||
/// <param name="value"></param>
|
||
public static void Write(string section, string key, string value)
|
||
{
|
||
// section=配置节,key=键名,value=键值,path=路径
|
||
WritePrivateProfileString(section, key, value, inifilepath);
|
||
}
|
||
|
||
public static void WriteValue(string key, string value)
|
||
{
|
||
try
|
||
{
|
||
WritePrivateProfileString("Config", key, value, inifilepath);
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
throw ex;
|
||
}
|
||
}
|
||
}
|
||
}
|