INI FILE 이용하기
--------------------------------------------------------------------------------
프로그램 개발시 변경되는 데이타의 정보를 담아두기 위해 ini 파일을 이용합니다.
비쥬얼베이직에서 API FUNCTION 을 이용하여 ini 파일에 데이타를 쓰고 읽는 방법
을 살펴보겠습니다.
1. ini 파일의 구조
[AppName1]
KeyName1=Value
KeyName2=Value
[AppName2]
KeyName1=Value
AppName은 KeyName이 들어가는 일반화된 범주에 표시한다. AppName은 옵션인데
사용할 경우 각괄호([]) 안에 넣어야 하며 KeyName은 프로그램이 .ini 파일에서
읽거나 파일에 쓸 때 참조할 값에 대한 텍스트 참조에 해당한다. Value는 KeyName에
할당된 값을 표시한다.
문자열은 인용 부호 속에 넣을 필요는 없으며 숫자 값은 직접 입력한다.
2. WritePrivateProfileString Function 을 이용하여 ini 쓰기
모듈에 다음의 API Function 을 선언한다
Public Declare Function WritePrivateProfileString Lib "kernel32" _
Alias "WritePrivateProfileStringA" _
(ByVal lpApplicationName As String, _
ByVal lpKeyName As Any, _
ByVal lpString As Any, _
ByVal lpFileName As String) As Long
인수 설명
----------------------------------------------------------------------------
lpApplicationName lpApplication Name 인수는 위의 (1)에서 설명한
ApplicationName 문자열에 해당한다.
lpKeyName lpKeyName 인수는 위의 (1)에서 설명한 KeyName에 해당한다
lpString lpString 인수는 위의 (1)에서 설명한 Value 문자열에
해당한다.
lpFileName lpFileName 인수는 참조중인 .ini파일의 완전히 규정된
경로와 파일 이름에 해당한다.
----------------------------------------------------------------------------
사용법 : temp.ini 에서 내용쓰기
temp.ini 파일구조
[APPNAME]
COUNT=10
Private Sub PutINIData()
Dim strFile As String
strFile = "temp.ini"
WritePrivateProfileString "APPNAME", "COUNT", "20", strFile
End Sub
위의 PutINIData Sub를 부르게 되면 ini 파일의 COUNT 값이
COUNT=10 에서 COUNT=20 으로 변경됩니다.
3. GetPrivateProfileString Function 을 이용하여 ini 읽기
모듈에 다음의 API Function 을 선언한다
Public Declare Function GetPrivateProfileString Lib "kernel32" _
Alias "GetPrivateProfileStringA" _
(ByVal lpApplicationName As String, _
ByVal lpKeyName As Any, _
ByVal lpDefault As String, _
ByVal lpReturnedString As String, _
ByVal nSize As Long, _
ByVal lpFileName As String) As Long
GetPrivateProfileString은 String 타입의 값을 리턴한다
인수 설명
----------------------------------------------------------------------------
lpApplicationName lpApplication Name 인수는 위의 (1)에서 설명한
ApplicationName 문자열에 해당한다.
lpKeyName lpKeyName 인수는 위의 (1)에서 설명한 KeyName에 해당한다
lpDefault lpDefault 인수는 문자열에 대해 유지되는 디폴트 값에
해당한다. 일반적으로 프로그램은 이 매개 변수를 사용하지
않는다.
lpReturnedString lpReturnedString 인수는 위의 (1)에서 설명한
Value문자열에 해당한다.
nSize nSize 인수는 lpReturnedString 인수 내의 리턴된 문자열
길이에 해당한다.
lpFileName lpFileName 인수는 참조중인 .ini파일의 완전히 규정된
경로와 파일 이름에 해당한다.
----------------------------------------------------------------------------
사용법 : temp.ini 에서 내용읽기
temp.ini 파일구조
[APPNAME]
COUNT=10
Private Sub GetINIData()
Dim strFile As String
Dim strTemp As String
Dim intLen As Long
Dim strCount As String
strFile = "temp.ini"
strTemp = String$(100, 0)
intLen = GetPrivateProfileString("APPNAME", "COUNT", "0", strTemp, _
Len(strTemp), strFile)
strCount = Left$(strTemp, lntLen)
End Sub
위의 GetINIData Sub를 부르게 되면 strCount 변수에 10 이란 값이 들어가게 됩니다.
만약 파일에 COUNT란 항목이 없게되면 API Function의 세번째 필드의 "0" 이란 값이 대신
들어가게 됩니다.
첫댓글 좋은 정보 감사합니다. 그런데 temp.ini 파일은 언제 만들어주나요? 직접 만들어서 미리 넣어놔야하는건가요? 그리고 만약 설치파일을 만든다고 한다면 이파일은 어떻게 넣어줘야 하나요?
파일경로가 어떻게 들어가는지 약간 까다롭네요..;; 좀.. 알려주세요~
ps: 수치 값의 경우 GetPrivateProfileInt()라는 함수를 쓰면 좀 더 편리하게 구할 수 있어요. ^^
좋은 자료 잘보았어요. 감사.