본문 바로가기

work/vb

ini file read/write

아래코드를 모듈에 선언합니다.


public INIFILE as string


'INI 스트링을 읽어오기 위한 API 선언

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


'INI 스트링을 기록하기 위한 API 선언

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


Public Function INIRead(Session As String, KeyValue As String, INIFILE As String) As String

'INI 값 읽기
    Dim s As String * 1024
    Dim ReturnValue As Long

    ReturnValue = GetPrivateProfileString(Session, KeyValue, "", s, 1024, INIFILE)
    INIRead = Left(s, InStr(s, Chr(0)) - 1)
End Function


Public Function INIWrite(Session As String, KeyValue As String, DataValue As String, INIFILE As String) As String

'INI 값 기록

    Dim ReturnValue As Long
    ReturnValue = WritePrivateProfileString(Session, KeyValue, DataValue, INIFILE)
End Function


Public Sub SetInifile()
'Setup.ini 세팅
    If Right(App.Path, 1) = "\" Then
        INIFILE = App.Path & "Setup.ini"
    Else
        INIFILE = App.Path & "\Setup.ini"
    End If
End Sub

아래는 폼이나 일정 모듈에서 사용하는 방법입니다.

INIWrite "세션", "키값", 값, inifile

텍스트에디트로 파일 열어보면

[세션]
키값=값


이런식으로 저장이 되어 있죠

읽어올때는

dim Str as string

str = iniread("세션", "키값", inifile)

이렇게 하면 str에는 "값"이란게 들어있을 겁니다.