怎样操作ini文件???????????????

解决方案 »

  1.   

    Option Explicit
    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
    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 LongPublic Function GetINISetting(Section As String, KeyName As String, DefaultValue As String) As String    Dim X As Long
        Dim Holder As String * 255    X = GetPrivateProfileString(Section, KeyName, DefaultValue, Holder, 254, App.Path & "\" & App.Title & ".ini")
        GetINISetting = Left$(Holder, InStr(Holder, Chr$(0)) - 1)End FunctionPublic Sub SaveINISetting(Section As String, KeyName As String, KeyValue As String)
        Dim X As Long
        X = WritePrivateProfileString(Section, KeyName, KeyValue, App.Path & "\" & App.Title & ".ini")
    End Sub
      

  2.   

    很有必要的操作ini 加密
    处理加密
    Private Function Encrypt(varPass As String, varFile As String)
      If Dir(varFile) <> "" Then: Kill varFile
      Dim varEncrypt As String * 50
      Dim varTmp As Double
      Open varFile For Random As #1 Len = 50  For I = 1 To Len(varPass)
        varTmp = Asc(Mid$(varPass, I, 1))
        varEncrypt = Str$(((((varTmp * 1.5) / 2.1113) * 1.111119) * I))
        Put #1, I, varEncrypt
      Next I
      Close #1
    End Function处理加密
    Private Function Decrypt(varFile As String) As String
      Open varFile For Random As #1 Len = 50
      Dim varReturn As String * 50
      Dim varConvert As Double
      Dim varFinalPass As String
      Dim varKey As Integer  For I = 1 To LOF(1) / 50
        Get #1, I, varReturn
        varConvert = Val(Trim(varReturn))
        varConvert = ((((varConvert / 1.5) * 2.1113) / 1.111119) / I)
        varFinalPass = varFinalPass & Chr(varConvert)
      Next I
      Decrypt = varFinalPass
      Close #1
    End Function
    使用實例:
    Private Sub Command1_Click()
      If Trim(Text3.Text) = "" Then
        MsgBox "請先輸入加密檔名稱", 16, "錯誤"
        Exit Sub
      End If
      Encrypt Text1.Text, Text3.Text   '將 Text1 中的字存到 Text3 檔案中
    End SubPrivate Sub Command2_Click()
      If Dir(Trim(Text3.Text)) = "" Or Trim(Text3.Text) = "" Then
        MsgBox "加密檔名稱錯誤", 16, "錯誤"
        Exit Sub
      End If
      Text2.Text = Decrypt(Text3.Text)  '將從 Text3 檔案中讀出的字轉譯放回 Text2
    End Sub
      

  3.   

    '请於form中放3个TextBox,一个CommandBox
    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 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 LongPrivate Sub Command1_Click()
    Dim success As Long
    success = WritePrivateProfileString("MyApp", "text1", Text1.Text, "c:\aa.ini")
    '叁数一 Section Name
    '叁数二 於.ini中的项目
    '叁数三 项目的内容
    '叁数四 .ini文件的名称
    success = WritePrivateProfileString("MyApp", "text2", Text2.Text, "c:\aa.ini")
    success = WritePrivateProfileString("MyApp2", "text3", Text3.Text, "c:\aa.ini")
    End SubPrivate Sub Form_load()
    Dim ret As Long
    Dim buff As String
    buff = String(255, 0)
    ret = GetPrivateProfileString("Myapp", "text1", "text1", buff, 256, "c:\aa.ini")
    '若.ini MyApp中无text1,则采用叁数三的值
    Text1.Text = buff
    buff = String(255, 0)
    ret = GetPrivateProfileString("Myapp", "text2", "text2", buff, 256, "c:\aa.ini")
    Text2.Text = buff
    buff = String(255, 0)
    ret = GetPrivateProfileString("Myapp2", "text3", "text3", buff, 256, "c:\aa.ini")
    Text3.Text = buff
    End Sub
      

  4.   

    由于Ini作为一个Windows配置文件,可以放在本地路径,现在看一个简单的例子。
    1.声明:
    Declare Function GetPrivateProfileString Lib "Kernel32" Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String, lpKeyName As Any, ByVal lpDefault As String, ByVal lpRetunedString As String, ByVal nSize As Long, ByVal lpFileName As String) As Long
    Declare Function SaveINI Lib "Kernel32" Alias "WritePrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpString As Any, ByVal lplFileName As String) As Long
    Function GetINI(AppName As String, KeyName As String, filename As String) As String
       Dim RetStr As String
       RetStr = String(10000, Chr(0))
       GetINI = Left(RetStr, GetPrivateProfileString(AppName, ByVal KeyName, "", RetStr, Len(RetStr), filename))
    End Function2.调用:
    读:Rtn=GetINI(appname, keyname, filename)
    写:SaveINI appname,keyname,string,filename3.解释:例如INI文件中有这么一块:[main]     .........这就是appname,不包括[]号
    FontColor=801085   ............FontColor就是KeyName,801085就是String而你的INI的绝对路径就是Filename。现在可以用INI文件保存你的设置啦。
      

  5.   

    自己搜索一下csdn以前的帖子,保证有你要问的问题的答案:)
      

  6.   

    【函数】
    GetPrivateProfileString【操作系统】
    Win9X:Yes
    WinNT:Yes【声明】
    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【说明】  为初始化文件中指定的条目取得字串 【返回值】  Long,复制到lpReturnedString缓冲区的字节数量,其中不包括那些NULL中止字符。如lpReturnedString缓冲区不够大,不能容下全部信息,就返回nSize-1(若lpApplicationName或lpKeyName为NULL,则返回nSize-2) 【其它】  在vb的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【参数表】
      lpApplicationName -  String,欲在其中查找条目的小节名称。这个字串不区分大小写。如设为vbNullString,就在lpReturnedString缓冲区内装载这个ini文件所有小节的列表  lpKeyName ------  String,欲获取的项名或条目名。这个字串不区分大小写。如设为vbNullString,就在lpReturnedString缓冲区内装载指定小节所有项的列表  lpDefault ------  String,指定的条目没有找到时返回的默认值。可设为空("")  lpReturnedString -  String,指定一个字串缓冲区,长度至少为nSize  nSize ----------  Long,指定装载到lpReturnedString缓冲区的最大字符数量  lpFileName -----  String,初始化文件的名字。如没有指定一个完整路径名,windows就在Windows目录中查找文件
      

  7.   

    抢分的例子:
    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 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 Sub Form_Load()
        Dim Ret As String, NC As Long
        'Write the setting to the file (c:\test.ini) under
        '   Project1 -> Keyname
        WritePrivateProfileString App.Title, "KeyName", "This is the value", "c:\test.ini"
        'Create a buffer
        Ret = String(255, 0)
        'Retrieve the string
        NC = GetPrivateProfileString(App.Title, "KeyName", "Default", Ret, 255, "C:\test.ini")
        'NC is the number of characters copied to the buffer
        If NC <> 0 Then Ret = Left$(Ret, NC)
        'Show our string
        MsgBox Ret
        'Delete the file
        Kill "c:\test.ini"
    End Sub
      

  8.   

    可用Windows API 函数访问INI文件
    1.GetProfileInt
    2.GetProfileSection
    3.GetProfileString
    4.WriteProfileSection
    5.WriteProfileString