怎么读写ini文件

解决方案 »

  1.   

    Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
    Private 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
    Private 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 LongPrivate Sub Form_Load()
        Open "C:\aa.ini" For Output As #1
        Print #1, "文件内容"
        Close #1
    End SubPrivate Sub Label1_Click()
    On Error GoTo Errhandle
        ShellExecute Me.hwnd, "open", "www.sohu.com", vbNullString, vbNullString, 1
        Exit Sub
    Errhandle:
        MsgBox Err.Description & "!", vbInformation
    End Sub'写INI文件
    Private Sub Command1_Click()
        Dim Counter As Long    For Counter = 1 To 4
            Call WriteToIni(App.Path & "\Options.ini", "Test", "Name" & Counter, "Value" & Counter)
        Next Counter
    End Sub'读INI文件
    Private Sub Command2_Click()
        Dim Counter As Long
        Dim Value(3) As String    For Counter = 1 To 4
            Value(Counter - 1) = ReadFromIni(App.Path & "\Options.ini", "Test", "Name" & Counter)
        Next Counter
    End Sub
      

  2.   

    Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" (ByVal lpApplicationname As String, ByVal LpKeyName As Any, ByVal lsString As Any, ByVal lplFilename As String) As Long
    '如果是读INT值可以用字符串转化,所以没有另外定义函数
    'Declare Function GetPrivateProfileInt Lib "kernel32" Alias "GetPriviteProfileIntA" (ByVal lpApplicationname As String, ByVal LpKeyName As String, ByVal nDefault As Long, ByVal lpFileName As String) As Long
    Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" (ByVal lpApplicationname As String, ByVal LpKeyName As String, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As String) As Long'定义读与写INI文件的函数
    '****读INI文件****
    '文件名 lpFileName 如果不存在会自己创建,如果只有文件名,默认在Windows\system目录下
    '[lpAppName]
    'lpKeyName=取回的设置值
    'lpDefault 当键值不存在时的默认值
    Public Function ReadINI(lpFileName As String, lpAppName As String, LpKeyName As String) As String
    Dim Temp As String * 20
    Dim lpDefault As String
    lpDefault = ""
    If GetPrivateProfileString(lpAppName, LpKeyName, lpDefault, Temp, Len(Temp), lpFileName) <= 0 Then
        ReadINI = ""
    Else
        ReadINI = MyTrim(Temp) 'MyTrim函数见下
    End If
    End Function
    '****写INI文件****
    '[lpAppName]
    'lpKeyName=lpString
    Public Function WriteINI(lpFileName As String, lpAppName As String, LpKeyName As String, lpString As String) As Boolean
        If WritePrivateProfileString(lpAppName, LpKeyName, lpString, lpFileName) = 0 Then
            WriteINI = False
        Else
            WriteINI = True
        End If
    End Function'包含三个函数,分别取Rtrim,Ltrim,Trim
    '可以去字符串中如ASC码为0,10,13,32的字符
    Public Function MyRtrim(Tmpstr As String)
    Dim i, s As Integer
    i = Len(Tmpstr)
    If i = 0 Then
        MyRtrim = ""
        Exit Function
    End If
    s = Asc(Right(Tmpstr, 1))
    While (s = 0 Or s = 13 Or s = 10 Or s = 32) And i > 0
        i = i - 1
        Tmpstr = Left(Tmpstr, i)
        If Len(Tmpstr) = 0 Then
            MyRtrim = ""
            Exit Function
        End If
        s = Asc(Right(Tmpstr, 1))
    Wend
    MyRtrim = Tmpstr
    End FunctionPublic Function MyLtrim(Tmpstr As String)
    Dim i, s As Integer
    i = Len(Tmpstr)
    If i = 0 Then
        MyLtrim = ""
        Exit Function
    End If
    s = Asc(Left(Tmpstr, 1))
    While (s = 0 Or s = 13 Or s = 10 Or s = 32) And i > 0
        i = i - 1
        Tmpstr = Right(Tmpstr, i)
        If Len(Tmpstr) = 0 Then
            MyLtrim = Tmpstr
        Exit Function
        End If
        s = Asc(Left(Tmpstr, 1))
    Wend
    MyLtrim = Tmpstr
    End FunctionPublic Function MyTrim(Tmpstr As String)
    Tmpstr = MyLtrim(Tmpstr)
    Tmpstr = MyRtrim(Tmpstr)
    MyTrim = Tmpstr
    End Function