| | |
| | | private static extern uint GetPrivateProfileStringA(string section, string key, |
| | | string def, Byte[] retVal, int size, string filePath); |
| | | |
| | | [DllImport("kernel32")] |
| | | private static extern int GetPrivateProfileSection(string section, byte[] retVal, int size, string filePath); |
| | | |
| | | #endregion |
| | | public static List<string> ReadSections() |
| | | { |
| | |
| | | return temp.ToString(); |
| | | } |
| | | else |
| | | return String.Empty; |
| | | return NoText; |
| | | } |
| | | |
| | | #endregion |
| | |
| | | return true; |
| | | } |
| | | #endregion |
| | | |
| | | public static Dictionary<string, string> GetKeyValuesBySection(string iniFile, string section) |
| | | { |
| | | int size = 65536; |
| | | byte[] buffer = new byte[size]; |
| | | |
| | | Dictionary<string, string> result = new Dictionary<string, string>(); |
| | | int bytesRead = GetPrivateProfileSection(section, buffer, size, iniFile); |
| | | if (bytesRead > 0) |
| | | { |
| | | string sectionData = Encoding.Default.GetString(buffer, 0, bytesRead - 1); |
| | | string[] keyValuePairs = sectionData.Split('\0'); |
| | | |
| | | foreach (string pair in keyValuePairs) |
| | | { |
| | | if (!string.IsNullOrEmpty(pair)) |
| | | { |
| | | int equalSignIndex = pair.IndexOf('='); |
| | | if (equalSignIndex > 0) |
| | | { |
| | | string key = pair.Substring(0, equalSignIndex).Trim(); |
| | | string value = pair.Substring(equalSignIndex + 1).Trim(); |
| | | result[key] = value; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | return result; |
| | | } |
| | | } |
| | | } |