C#創建ini文件、讀取值、修改值
調用方法:
int iBaudRate = InIHelper.ReadConfig<int>("COM_SETUP", "波特率")
InIHelper類:
public class InIHelper { private static string FileName = Application.StartupPath + "\AppConfig.ini"; /// <summary> /// 讀取配置文件 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="section"></param> /// <param name="key"></param> /// <returns></returns> public static T ReadConfig<T>(string section, string key) { if (File.Exists(FileName)) { IniFile f = new IniFile(FileName); string value = f.ReadContentValue(section, key);if (String.IsNullOrWhiteSpace(value)) return default(T); if (typeof(T).IsEnum) return (T)Enum.Parse(typeof(T), value, true); return (T)Convert.ChangeType(value, typeof(T)); } else { return default(T); } } /// <summary> /// 寫配置文件 /// </summary> /// <param name="section"></param> /// <param name="key"></param> /// <param name="value"></param> public static void WriteConfig(string section, string key, string value) { //如果文件不存在,則創建 if (!File.Exists(FileName)) { using (FileStream myFs = new FileStream(FileName, FileMode.Create)) { } } IniFile f = new IniFile(FileName); f.WriteContentValue(section, key, value); } }</pre>
核心代碼:
public class IniFile { public string Path;public IniFile(string path) { this.Path = path; } /// <summary> /// 寫入INI文件 /// </summary> /// <param name="section">節點名稱[如[TypeName]]</param> /// <param name="key">鍵</param> /// <param name="val">值</param> /// <param name="filepath">文件路徑</param> /// <returns></returns> [DllImport("kernel32")] private static extern long WritePrivateProfileString(string section, string key, string val, string filepath); /// <summary> /// 讀取INI文件 /// </summary> /// <param name="section">節點名稱</param> /// <param name="key">鍵</param> /// <param name="def">值</param> /// <param name="retval">stringbulider對象</param> /// <param name="size">字節大小</param> /// <param name="filePath">文件路徑</param> /// <returns></returns> [DllImport("kernel32")] private static extern int GetPrivateProfileString(string section, string key, string def, StringBuilder retval, int size, string filePath); /// <summary> /// 寫入 /// </summary> /// <param name="section"></param> /// <param name="key"></param> /// <param name="iValue"></param> public void WriteContentValue(string section, string key, string iValue) { WritePrivateProfileString(section, key, iValue, this.Path); } /// <summary> /// 讀取INI文件中的內容方法 /// </summary> /// <param name="Section">鍵</param> /// <param name="key">值</param> /// <returns></returns> public string ReadContentValue(string Section, string key) { StringBuilder temp = new StringBuilder(1024); GetPrivateProfileString(Section, key, "", temp, 1024, this.Path); return temp.ToString(); } }</pre>
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!