1using System;
2using System.IO;
3using System.Data;
4using System.Runtime.InteropServices;
5using System.Text;
6using System.Collections;
7using System.Collections.Specialized;
8
9namespace FaibClass.IniFile
10{
11 /**//// <summary>
12 /// INI配置文件管理库,
13 /// Design By Faib Studio.
14 /// </summary>
15 public class IniFile
16 {
17
18 internal static string _FileName;
19 private SectionCollection _Sections=new SectionCollection();
20
21 /**//// <summary>
22 /// 构造类。
23 /// </summary>
24 public IniFile()
25 {
26 }
27
28 /**//// <summary>
29 /// INI文件名。
30 /// </summary>
31 public string FileName
32 {
33 get{return _FileName;}
34 set{_FileName=value;this.LoadDataStructure();}
35 }
36
37 /**//// <summary>
38 /// 构造类,传入文件名。
39 /// </summary>
40 /// <param name="FileName">INI文件名。</param>
41 public IniFile(string FileName)
42 {
43 _FileName=FileName;
44 LoadDataStructure();
45 }
46
47 /**//// <summary>
48 /// 返回版权信息。
49 /// </summary>
50 public string CopyrightMessage
51 {
52 get{return "Copyright (C) 2006 Faib Studio All Rights Reserved";}
53 }
54
55 /**//// <summary>
56 /// 读取键值。
57 /// </summary>
58 /// <param name="Section">节名称。</param>
59 /// <param name="Key">键名称</param>
60 /// <returns>键值。</returns>
61 public string ReadValue(string Section,string Key)
62 {
63 if(_FileName==null || _FileName=="")return null;
64 return IniFile.ReadValue(_FileName,Section,Key);
65 }
66
67 /**//// <summary>
68 /// 读取键值。
69 /// </summary>
70 /// <param name="FileName">文件路径。</param>
71 /// <param name="Section">节名称。</param>
72 /// <param name="Key">键名称</param>
73 /// <returns>键值。</returns>
74 public static string ReadValue(string FileName,string Section,string Key)
75 {
76 byte[] temp=new byte[255];
77 try
78 {
79 int l = WindowsAPI.GetPrivateProfileString(Section,Key,"",temp, temp.GetUpperBound(0) ,FileName);
80 string ret = Encoding.GetEncoding(0).GetString(temp);
81 return ret.Substring(0,ret.IndexOf((char)0));
82 }
83 catch
84 {
85 throw;
86 }
87 }
88
89 /**//// <summary>
90 /// 写入键值。
91 /// </summary>
92 /// <param name="Section">节名称。</param>
93 /// <param name="Key">键名称。</param>
94 /// <param name="Value">键值。</param>
95 public void WriteValue(string Section,string Key,object Value)
96 {
97 if(_FileName==null || _FileName=="")return;
98 IniFile.WriteValue(_FileName,Section,Key,Value);
99 this.LoadDataStructure();
100 }
101
102 /**//// <summary>
103 /// 写入键值。
104 /// </summary>
105 /// <param name="FileName">文件路径。</param>
106 /// <param name="Section">节名称。</param>
107 /// <param name="Key">键名称。</param>
108 /// <param name="Value">键值。</param>
109 public static void WriteValue(string FileName,string Section,string Key,object Value)
110 {
111 WindowsAPI.WritePrivateProfileString(Section,Key,Value.ToString(),FileName);
112 }
113
114 /**//// <summary>
115 /// 移除节。
116 /// </summary>
117 /// <param name="Section">节名称。</param></param>
118 public void RemoveSection(string Section)
119 {
120 if(_FileName==null || _FileName=="")return;
121 IniFile.RemoveSection(_FileName,Section);
122 this.LoadDataStructure();
123 }
124
125 /**//// <summary>
126 /// 移除节。
127 /// </summary>
128 /// <param name="FileName">文件路径。</param>
129 /// <param name="Section">节名称。</param>
130 public static void RemoveSection(string FileName,string Section)
131 {
132 WindowsAPI.WritePrivateProfileString(Section, null, null, FileName);
133 }
134
135 /**//// <summary>
136 /// 移除键值。
137 /// </summary>
138 /// <param name="Section">节名称。</param>
139 /// <param name="Key">键名称。</param>
140 public void RemoveKey(string Section,string Key)
141
2using System.IO;
3using System.Data;
4using System.Runtime.InteropServices;
5using System.Text;
6using System.Collections;
7using System.Collections.Specialized;
8
9namespace FaibClass.IniFile
10{
11 /**//// <summary>
12 /// INI配置文件管理库,
13 /// Design By Faib Studio.
14 /// </summary>
15 public class IniFile
16 {
17
18 internal static string _FileName;
19 private SectionCollection _Sections=new SectionCollection();
20
21 /**//// <summary>
22 /// 构造类。
23 /// </summary>
24 public IniFile()
25 {
26 }
27
28 /**//// <summary>
29 /// INI文件名。
30 /// </summary>
31 public string FileName
32 {
33 get{return _FileName;}
34 set{_FileName=value;this.LoadDataStructure();}
35 }
36
37 /**//// <summary>
38 /// 构造类,传入文件名。
39 /// </summary>
40 /// <param name="FileName">INI文件名。</param>
41 public IniFile(string FileName)
42 {
43 _FileName=FileName;
44 LoadDataStructure();
45 }
46
47 /**//// <summary>
48 /// 返回版权信息。
49 /// </summary>
50 public string CopyrightMessage
51 {
52 get{return "Copyright (C) 2006 Faib Studio All Rights Reserved";}
53 }
54
55 /**//// <summary>
56 /// 读取键值。
57 /// </summary>
58 /// <param name="Section">节名称。</param>
59 /// <param name="Key">键名称</param>
60 /// <returns>键值。</returns>
61 public string ReadValue(string Section,string Key)
62 {
63 if(_FileName==null || _FileName=="")return null;
64 return IniFile.ReadValue(_FileName,Section,Key);
65 }
66
67 /**//// <summary>
68 /// 读取键值。
69 /// </summary>
70 /// <param name="FileName">文件路径。</param>
71 /// <param name="Section">节名称。</param>
72 /// <param name="Key">键名称</param>
73 /// <returns>键值。</returns>
74 public static string ReadValue(string FileName,string Section,string Key)
75 {
76 byte[] temp=new byte[255];
77 try
78 {
79 int l = WindowsAPI.GetPrivateProfileString(Section,Key,"",temp, temp.GetUpperBound(0) ,FileName);
80 string ret = Encoding.GetEncoding(0).GetString(temp);
81 return ret.Substring(0,ret.IndexOf((char)0));
82 }
83 catch
84 {
85 throw;
86 }
87 }
88
89 /**//// <summary>
90 /// 写入键值。
91 /// </summary>
92 /// <param name="Section">节名称。</param>
93 /// <param name="Key">键名称。</param>
94 /// <param name="Value">键值。</param>
95 public void WriteValue(string Section,string Key,object Value)
96 {
97 if(_FileName==null || _FileName=="")return;
98 IniFile.WriteValue(_FileName,Section,Key,Value);
99 this.LoadDataStructure();
100 }
101
102 /**//// <summary>
103 /// 写入键值。
104 /// </summary>
105 /// <param name="FileName">文件路径。</param>
106 /// <param name="Section">节名称。</param>
107 /// <param name="Key">键名称。</param>
108 /// <param name="Value">键值。</param>
109 public static void WriteValue(string FileName,string Section,string Key,object Value)
110 {
111 WindowsAPI.WritePrivateProfileString(Section,Key,Value.ToString(),FileName);
112 }
113
114 /**//// <summary>
115 /// 移除节。
116 /// </summary>
117 /// <param name="Section">节名称。</param></param>
118 public void RemoveSection(string Section)
119 {
120 if(_FileName==null || _FileName=="")return;
121 IniFile.RemoveSection(_FileName,Section);
122 this.LoadDataStructure();
123 }
124
125 /**//// <summary>
126 /// 移除节。
127 /// </summary>
128 /// <param name="FileName">文件路径。</param>
129 /// <param name="Section">节名称。</param>
130 public static void RemoveSection(string FileName,string Section)
131 {
132 WindowsAPI.WritePrivateProfileString(Section, null, null, FileName);
133 }
134
135 /**//// <summary>
136 /// 移除键值。
137 /// </summary>
138 /// <param name="Section">节名称。</param>
139 /// <param name="Key">键名称。</param>
140 public void RemoveKey(string Section,string Key)
141