From fe2aa4880d5c9fd88088ad0ed81ebaca05629f5f Mon Sep 17 00:00:00 2001
From: wenxiangchao <wenxiangchao@ihengxin.com.cn>
Date: 星期一, 02 十一月 2026 17:59:45 +0800
Subject: [PATCH] feat: 集成CAN驱动/模拟器 + 仪器仪表注册/硬件调试模块
---
HMI.Util/IniFileHelper.cs | 34 +++++++++++++++++++++++++++++++++-
1 files changed, 33 insertions(+), 1 deletions(-)
diff --git a/HMI.Util/IniFileHelper.cs b/HMI.Util/IniFileHelper.cs
index f6e7d4e..2494ec7 100644
--- a/HMI.Util/IniFileHelper.cs
+++ b/HMI.Util/IniFileHelper.cs
@@ -26,6 +26,9 @@
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()
{
@@ -86,7 +89,7 @@
return temp.ToString();
}
else
- return String.Empty;
+ return NoText;
}
#endregion
@@ -108,5 +111,34 @@
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;
+ }
}
}
--
Gitblit v1.9.1