windows 폴더에 저장되는 ini파일은 프로그램 구동에 필요한 간단한 정보를 포함할 수 있다. 요즘엔 많은 데이터를 레지스트리에 불러오고 저장하지만, 구식이라서 그러지 아직 INI 파일이 편하다. 사용하기도 간편하고...레지스트리처럼 키를 열고 나서 쓰고 닫고...이럴 필요가 없으니까.
INI를 다루는 함수는 아래와 같다. 문자열형식과 숫자 형식의 데이터를 기록할 수 있다.
BOOL WriteProfileInt(
LPCTSTR lpszSection,
LPCTSTR lpszEntry,
int nValue
);
BOOL WriteProfileString(
LPCTSTR lpszSection,
LPCTSTR lpszEntry,
LPCTSTR lpszValue
);
CString GetProfileString(
LPCTSTR lpszSection,
LPCTSTR lpszEntry,
LPCTSTR lpszDefault = NULL
);
UINT GetProfileInt(
LPCTSTR lpszSection,
LPCTSTR lpszEntry,
int nDefault
);
위에서 인자는 거의 거기서 거기인데, 우선 첫 번째 lpszSection은 INI의 파일이름이다. 두 번째인자는 INI에서 불러올 부분이다. 세 번째는 Get으로 시작하는 함수의 경우, 두 번째 인자의 Entry가 없을 경우에 디폴트 값이고, Set으로 시작하는 함수의 경우 INI에 기록할 값이다.
이렇게 기록을 하면 C:\Windows\ 에 '프로그램명.INI'로 저장이 되거나, 그 해당 INI에서 불러온다.
간단한 사용 예는 아래와 같다. 우선 위의 함수들은 전부 CWinApp의 메소드이므로, CWinApp를 얻어와야 한다.
CWinApp *pApp = AfxGetApp();
pApp->WriteProfileInt("Program", "First", 1);
이렇게 하면 Program.INI파일을 만들어서, 그 파일안에 First라는 항목을 만들고 그 값을 1로 저장한다는 뜻이다. 위 코드를 실행해보고 직접 INI파일을 열어보면 된다.
INI 파일을 여는 방법도 비슷하다.
CWinApp *pApp = AfxGetApp();
UINT i = pApp->GetProfileInt("Program", "First" ,0);
위의 코드는 Program.ini파일의 First라는 항목에 저장되어 있는 값을 읽어오는 것이다. 만약에 First라는 항목이 없거나, Program.ini파일이 없다면 0을 리턴하게 되는 것이다.
댓글 없음:
댓글 쓰기