我知道在Delphi中有TINIFile类可以很方便地操作ini文件。在VB中,只找到调用API函数GetPrivateProfileString读ini的方法,但是VB中如何写ini文件呢?包括修改、删除指定小节的指定关键字。我是菜鸟,好不容易提问一回,望各位不吝赐教,多谢了!

解决方案 »

  1.   

    首先,声明两个API函数WritePrivateProfileString和GetPrivateProfileString,一下是代码:Private Sub WriteToIni(ByVal Filename As String, ByVal Section As String, ByVal Key As String, ByVal Value As String)
      Dim buff As String * 128
      buff = Value + Chr(0)
      WritePrivateProfileString Section, Key, buff, Filename
    End Sub
    Private Function ReadFromIni(ByVal Filename As String,ByVal Section As String, ByVal Key As String) As String
      Dim i As Long
      Dim buff As String * 128
      GetPrivateProfileString Section, Key, "", buff, 128, Filename
      i = InStr(buff, Chr(0))
      ReadFromIni = Trim(Left(buff, i - 1))
    End Function 
    应用举例:
    一、写INI文件 
    Dim Counter As Long
    For Counter=1 To 4
      Call WriteToIni(App.Path & "\Options.ini", "Test", "Name" & Counter, "Value" & Counter)
    Next Counter
    运行后Options.ini内容如下:
    [Test]
    Name1=Value1
    Name2=Value2
    Name3=Value3
    Name4=Value4
    二、读INI文件
    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
      

  2.   

    http://www.china-askpro.com/msg10/qa40.shtml
    WritePrivateProfileString  VB声明  
    Declare Function WritePrivateProfileString& Lib "kernel32" Alias "WritePrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpString As String, ByVal lpFileName As String)  
    说明  
    在初始化文件指定小节内设置一个字串  
    返回值  
    Long,非零表示成功,零表示失败。会设置GetLastError  
    参数表  
    参数 类型及说明  
    lpApplicationName String,要在其中写入新字串的小节名称。这个字串不区分大小写  
    lpKeyName Any,要设置的项名或条目名。这个字串不区分大小写。用vbNullString可删除这个小节的所有设置项  
    lpString String,指定为这个项写入的字串值。用vbNullString表示删除这个项现有的字串  
    lpFileName String,初始化文件的名字。如果没有指定完整路径名,则windows会在windows目录查找文件。如果文件没有找到,则函数会创建它  
    其他  
    在vb的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  
      

  3.   

    这么快就有答案了!多谢haoya(不是不想) !