ini 파일 헬퍼 클래스 만들기 :: 2007/03/31 09:06


윈도우 프로그래밍 테크닉
Ini 파일 헬퍼 클래스 만들기
신영진 pop@jiniya.net http://www.jiniya.net

Windows 환경에서 프로그램과 관련된 설정 정보는 주로 레지스트리나 ini 파일에 저장한다. Win32에서는 ini 파일 보다는 레지스트리의 사용을 권고한다. 그래서 그런지 ATL에 레지스트리를 포장한 CRegKey 클래스는 있어도 ini 파일 함수들을 포장한 클래스는 존재하지 않는다. 런타임 정보(도킹 툴바의 위치, 설치 경로, 최근 작업한 문서 등의 그때그때 바뀌는 정보)의 경우는 레지스트리가 적합하지만, 환경정보(색상, 단축키 등의 사용자가 설정한 내용)의 저장소로는 부적합하다. 이유는 간단하다. 사용자가 찾기가 힘들기 때문이다. 멀리 갈 것도 없이 Visual Studio만 해도 그렇다. Visual Studio의 색상 정보나 단축키 정보를 찾는 것은 거의 리버싱을 하는 수준이다. 그마저도 찾지 못하면 설치할 때 마다 설정을 새로 해야 한다. 이러한 이유로 필자는 환경설정 정보를 저장하는 데는 외부 파일(ini, xml 등)을 더 선호한다.

<리스트 1>은 ini 파일 API들을 쓰기 쉽도록 포장한 클래스다. SetFile 함수로 사용할 ini 파일 이름을 기록한 다음 Read, Write를 통해서 읽고 쓸 수 있다. 간단한 API만 포장한 것이기 때문에 복잡한 ini API들은 지원하지 않는다. 전체 클래스는 http://www.jiniya.net/files/inihlpr.zip 에서 받을 수 있다.

리스트 1 Ini 파일 헬퍼 클래스


스폰서
글타래

  • 2주간 인기 글
  • 2주간 인기글이 없습니다.
Trackback Address :: http://jiniya.net/tt/trackback/482
  • Gravatar Image.
    미친병아리 | 2007/03/31 11:19 | PERMALINK | EDIT/DEL | REPLY

    환경설정 파일에 ini 파일을 여전히 많이 사용하시나요?
    예전엔 레지스트리에.. 요즘엔 거의 XML로 해버려서리..

    • Gravatar Image.
      codewiz | 2007/03/31 13:47 | PERMALINK | EDIT/DEL

      복잡하지 않은 곳에는 ini가 더 편하더군요.
      코딩하기도 쉽고 파일 보기도 편하고,.

      복잡한 곳에는 당연히 xml이 더 좋긴 한데, 파서도 필요하고, 우리가 저장하려는 정보보다 메타 데이터를 위한 공간이 더 많이 사용된다는 느낌 같은 것들 때문에 저는 ini 파일을 여전히 많이 사용하는 편 입니다.

  • Gravatar Image.
    오스카 | 2007/04/02 11:08 | PERMALINK | EDIT/DEL | REPLY

    저도 크게 계층 구조를 이룰만큼 복잡한 정보가 아닌 이상은 역시 ini가 좋긴 하더군요.
    요즘은 그냥 루아 스크립트로 처리해버리기도 하지만... 간단하게 쓰기도 좋고, 복잡한 것도 충분하고. -0-
    (아예 조건에 따른 환경 변수 세팅을 설정 파일에서 해버릴 수가 있으니..)

    • Gravatar Image.
      codewiz | 2007/04/02 11:54 | PERMALINK | EDIT/DEL

      루아는 정말 쵝오죠. ㅋㅋ
      저도 요즘 임베딩언어에 관심이 많아서 이것저것 해보고 있습니다.

  • Gravatar Image.
    Gungume | 2007/08/28 22:08 | PERMALINK | EDIT/DEL | REPLY

    이번에 처음으로 ini 파일을 사용해봤는데 이 클래스 받아다 분석해봐야겠네요...
    좋은자료 감사합니다...
    시간나면 xml도 한번봐야겠군요...

    • Gravatar Image.
      codewiz | 2007/08/29 18:51 | PERMALINK | EDIT/DEL

      별로 분석할만한 소스는 아닙니다. 간단한 API 몇 개 래퍼해주는게 전부죠. 시간이 난다면 좀 더 제대로 만들어서 올리겠습니다.

Name
Password
Homepage
Secret