'WritePrivateProfileString'에 해당되는 글 1

  1. 2010.07.12 C#에서 INI 파일 사용하기 - GetPrivateProfileString, WritePrivateProfileString


ini 파일을 이용하여 각 종 정보를 활용하고자 할 때 사용하는 함수들이 있는데,
그것은 C#자체적으로 제공을 하는 것이 아닌 win32 를 활용하는 것이다.
그에 대한 C#에서의 사용법을 보자면..

        [System.Runtime.InteropServices.DllImport("kernel32")]
        private static extern long WritePrivateProfileString(string section, string key, string val, string filePath);

        [System.Runtime.InteropServices.DllImport("kernel32")]
        private static extern int GetPrivateProfileString(string section, string key, string def, StringBuilder retVal, int size, string filePath);

이런 식으로 선언을 하여서 사용을 하면된다.

편하게 쓰고자 한다면...
public string ReadINI(sID, sKey, sDefault)
{
    string sGetRtnVal;
    GetPrivateProfileString(sID, sKey, String.Empty, sGetRtnVal, 1024, this.path);
   
    return sGetRtnVal;
}

public voidstring WriteINI(sID, sKey, sValue)
{
    WritePrivateProfileString(sID, sKey, sValue, this.path);   
}

이런식으로 함수를 만들어서 호출만 하게 하면 편하게 사용할 수 있을 것이다.

ini 파일의 값(내용)은 아래 내용을 참고하면 무난히 사용할 수 있을 것이다.

[출처] 본인


=========================================================================================

GetPrivateProfileString(XXX)
프로그램을 개발할때 설정정보를 저장하는 용도로  ini 파일이나 레지스터리를 많이 이용하곤 합니다.  GetPrivateProfileString은 확장자가 ini인 파일로 부터 데이터를 가져오기 위해 사용합니다.
--------------------------------- 
  test.ini 파일 예

  [MyINI]
  MyLength=100
  MyPointX=10
  MyPointY=20
---------------------------------

  ini파일이 위와 같을 때

StringBuilder temp = new StringBuilder(255);
int length = GetPrivateProfileString("MyINI", "MyLength", string.Empty, temp, 255, this.path);

  이와 같이 하시면 temp에 100이라는 값이 담겨지게 됩니다.

  첫번째 Section은 ini파일의 섹션 즉 "MyINI"라는 대괄호로 묶인 부분 이름을 적고요
  두번째 Key는 해당 섹션내 키의 이름 "MyLength", " MyPointX" 등을 적을 수 있습니다.
  string.Empty는 디폴트 값입니다.
  temp는 리턴 받기 위한 포인터입니다. StringBuilder을 위에 정의한 이유는 Reference형 변수를 StringBuilder개체로 temp라는 이름으로 만들었다는 겁니다.
  this.path는 ini파일의 경로명이 들어갑니다.
  length는 리턴된 버퍼의 길이고요.

[출처] http://kin.naver.com/qna/detail.nhn?d1id=1&dirId=1040102&docId=102749391&qb=R2V0UHJpdmF0ZVByb2ZpbGVTdHJpbmc=&enc=utf8&section=kin&rank=1&sort=0&spq=0&pid=gvpoyz331yosscE5KeNssv--303133&sid=TDbw-2TmNkwAABQsrcU



end line =================================================================