728x90

사실 C#에서는 환경 설정 파일로는 ini 파일을 사용하지 않고 app.config 파일을 다룹니다.
ini파일은 예전 C++과 MFC에서 사용하던 환경 설정 파일입니다.

장비와 연동을 위해 때로는 필요한 경우가 있습니다.

 

.dll" 파일의 WritePrivateProfileStringGetPrivateProfileString 함수를 사용한다. 

[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

+ Recent posts