C# ini 파일 입출력 예제
2021. 8. 10. 10:36ㆍ프로그래밍
반응형
C#에서 ini 파일을 다루기 위한 예제입니다.
사용에 참고하시기 바랍니다.
class clsINI
{
public string sINIPath;
/// <summary>
/// clsINI 생성자
/// </summary>
/// <param name="sPath">ini 파일 경로 ex) @"D:\\Example.ini" </param>
public clsINI(string sPath)
{
sINIPath = sPath;
}
/// <summary>
/// INI 파일 읽기 함수 (섹션설정)
/// </summary>
/// <param name="Section">섹션</param>
/// <returns></returns>
public string[] GetIniValue1(string Section)
{
byte[] ba = new byte[255];
uint flag = GetPrivateProfileSection(Section, ba, 255, sINIPath);
return Encoding.Default.GetString(ba).Split(new char[1] { '\0' }, StringSplitOptions.RemoveEmptyEntries);
}
/// <summary>
/// INI 파일 읽기 함수 (섹션, 키값 설정)
/// </summary>
/// <param name="Section">섹션</param>
/// <param name="Key">키값</param>
/// <returns></returns>
public string GetIniValue2(string Section, string Key)
{
StringBuilder sb = new StringBuilder(500);
int Flag = GetPrivateProfileString(Section, Key, "", sb, 500, sINIPath);
return sb.ToString();
}
/// <summary>
/// INI 파일 쓰기 함수 (섹션, 키값 설정)
/// </summary>
/// <param name="Section">섹션</param>
/// <param name="Key">키</param>
/// <param name="Value">값</param>
/// <returns></returns>
public bool SetIniValue(string Section, string Key, string Value)
{
return (WritePrivateProfileString(Section, Key, Value, sINIPath));
}
//public static void InitialConfig(string sINIPath)
//{
// if (File.Exists(sINIPath) == true)
// {
// clsDataManager.bHost = Convert.ToBoolean(GetIniValue2("General", "Host", sINIPath));
// clsDataManager.bHSMS = Convert.ToBoolean(GetIniValue2("General", "HSMS", sINIPath));
// }
// else
// {
// SetIniValue("General", "Host", clsDataManager.bHost.ToString(), sINIPath);
// SetIniValue("General", "HSMS", clsDataManager.bHSMS.ToString(), sINIPath);
// SetIniValue("General", "Device ID", clsDataManager.nDeviceID.ToString(), sINIPath);
// SetIniValue("General", "Queue", clsDataManager.nQueue.ToString(), sINIPath);
// }
//}
#region DLLImport for ini File Read & Write
[DllImport("kernel32")]
public static extern int GetPrivateProfileString(string lpAppName, string lpKeyName, string lpDefault, StringBuilder lpReturnedString, int nSize, string lpFileName);
[DllImport("kernel32")]
public static extern bool WritePrivateProfileString(string lpAppName, string lpKeyName, string lpString, string lpFileName);
[DllImport("kernel32.dll")]
public static extern uint GetPrivateProfileSection(string lpAppName, byte[] lpPairValue, uint nSize, string lpFileName);
[DllImport("kernel32.dll")]
public static extern uint GetPrivateProfileSectionNames(byte[] lpSections, uint nSize, string lpFileName);
#endregion
}
반응형
'프로그래밍' 카테고리의 다른 글
C# SECS 메세지 수신부 일부 예제 (1) | 2021.08.10 |
---|---|
C# HSMS 통신 로그 부 예제 (3) | 2021.08.10 |
C# SECS 통신 관련 Define 자료 (2) | 2021.08.09 |
C# SECS 통신 관련 구조체 예제 (2) | 2021.08.09 |
C# 수신된 SEM DATA를 Parsing 후 SortedList 형태로 리턴 예제 (1) | 2021.08.09 |