728x90
사실 C#에서는 환경 설정 파일로는 ini 파일을 사용하지 않고 app.config 파일을 다룹니다.
ini파일은 예전 C++과 MFC에서 사용하던 환경 설정 파일입니다.
장비와 연동을 위해 때로는 필요한 경우가 있습니다.
.dll" 파일의 WritePrivateProfileString, GetPrivateProfileString 함수를 사용한다.
[DllImport("kernel32")]
public static extern long WritePrivateProfileString(string section, string key, string val, string filePath);
[DllImport("kernel32")]
public static extern int GetPrivateProfileString(string section, string key, string def, StringBuilder retVal, int size, string filePath);
같은 폼에서 사용하면 public 대신 private써도 됨.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
namespace AClass_Daemon.Process
{
static class Class_Config
{
[DllImport("kernel32")]
private static extern long WritePrivateProfileString(string section, string key, string val, string filePath);
[DllImport("kernel32")]
private static extern int GetPrivateProfileString(string section, string key, string def, StringBuilder retVal, int size, string filePath);
private const string const_ConfileName = "./Config.ini";
static public string Get_Config(string Section, string Key, string DefaultData)
{
StringBuilder sbTemp = new StringBuilder(255);
string sRetValue = "";
GetPrivateProfileString(Section, Key, "", sbTemp, 255, const_ConfileName); //D:\net_workspace\smart\AClass_Daemon\AClass_Daemon\bin/config.ini 에서 값 불러오기 :: return sbTemp
if (sbTemp.ToString().Trim() == "")
{
WritePrivateProfileString(Section, Key, DefaultData, const_ConfileName);
sRetValue = DefaultData;
}
else
{
sRetValue = sbTemp.ToString().Trim();
}
sbTemp = null;
return sRetValue;
}
static public long Set_Config(string Section, string Key, string Data)
{
long iRet = 0;
iRet = WritePrivateProfileString(Section, Key, Data, const_ConfileName);
return iRet;
}
}
}
728x90