列表框中有几个选项(如几个姓名),想保存到INI文件中(动态的,有可能在程序中添加或删除选项) ,以便下次启动程序时再次添加进列表框中. 想写在INI文件中 [usermail]里,如果只有一个好办,在INI文件里直接写入a=姓名 就好了 因为有好几个所以不知道该怎么写了(注;该INI文件中还有其他的配置参数,我目前是将其写在TXT文件里,现在想事例到INI文件里省事.就用操作INI文件的两个API函数实现)  要怎么写呢? 
此API怎么用:
WritePrivateProfileSection VB声明 
Declare Function WritePrivateProfileSection Lib "kernel32" Alias "WritePrivateProfileSectionA" (ByVal lpAppName As String, ByVal lpString As String, ByVal lpFileName As String) As Long 
说明 
为一个初始化文件(.ini)中指定的小节设置所有项名和值 
返回值 
Long,非零表示成功,零表示失败。会设置GetLastError 
参数表 
参数 类型及说明 
lpAppName String,要设置的小节。这个字串不区分大小写 
lpString String,项和值字串的一个列表。每个字串都用一个NULL字符分隔,最后一个字串后面用两个NULL表示中止。如lpAppName指定的小节不存在,则用那个名字新建一个小节,并将其追加到初始化文件的最后。如果存在,则当前的所有项名和值都会被这个缓冲区中指定的数据取代 
lpFileName String,初始化文件的名字。如指定了一个完整路径,而且文件不存在,就会产生错误。如只指定了文件名,而且文件不存在,就在当前的windows目录中创建它 
第二个参数"NULL字符"不知道是用什么表示的? 最好能举个例子.  谢谢

解决方案 »

  1.   

    WritePrivateProfileString("ini文件及路径", "类名", "子类名","参数")
    如果一个ini里你直接使用这个参数,没有ini文件则会创建,没有类名也会建创,没有子类名也会创建,没有参数也会创建
    如果这样
    WritePrivateProfileString("c:\123.ini", "iniok", "date",now)
    结果就是c:\123.ini会有如下内容
    [iniok]
    date=当前日期当你再执行
    WritePrivateProfileString("c:\123.ini", "iniok1", "date2",now)
    结果就是c:\123.ini会有如下内容
    [iniok]
    date=当前日期
    [iniok1]
    date2=当前日期
    以此类推。。
      

  2.   

    【操作系统】
    Win9X:Yes
    WinNT:Yes
    【说明】
      为一个初始化文件(.ini)中指定的小节设置所有项名和值 
    【返回值】
      Long,非零表示成功,零表示失败。会设置GetLastError 
    【其它】
    【参数表】
      lpAppName ------  String,要设置的小节。这个字串不区分大小写
      lpString -------  String,项和值字串的一个列表。每个字串都用一个NULL字符分隔,最后一个字串后面用两个NULL表示中止。如lpAppName指定的小节不存在,则用那个名字新建一个小节,并将其追加到初始化文件的最后。如果存在,则当前的所有项名和值都会被这个缓冲区中指定的数据取代
      lpFileName -----  String,初始化文件的名字。如指定了一个完整路径,而且文件不存在,就会产生错误。如只指定了文件名,而且文件不存在,就在当前的windows目录中创建它
      

  3.   

    添加这个模块:http://www.m5home.com/bbs/dispbbs.asp?boardid=10&id=452&star=1&page=1然后:[code=VBScript'新建一工程,添加本模块. 在默认的窗体里加入以下代码:   
    Private Sub Form_Load() 
         IniFileName = App.Path & "\abc.ini" 
         Me.Width = GetIniN(App.EXEName, "Width", 3000) 
         Me.Height = GetIniN(App.EXEName, "Height", 7000) 
    End Sub 
    Private Sub Form_Unload(Cancel As Integer) 
         SetIniN App.EXEName, "Width", Me.Width 
         SetIniN App.EXEName, "Height", Me.Height 
    End Sub [/code]
      

  4.   

    建议用 WritePrivateProfileString 和 GetPrivateProfileString
    sub WriteMailList(aMailList() as string)
        dim lCount as long, i as long
        lcount = UBound(aMailList) + 1 '假定 aMailList 下标从 0 开始
        WritePrivateProfileString "usermail", vbNullString, vbNullString, "test.ini" '整段删除
        WritePrivateProfileString "usermail", "Count", CStr(lCount), "test.ini"
        for i=0 to lCount
            WritePrivateProfileString "usermail", "Item" & i, aMailList(i), "test.ini"
        next
    end subfunction GetMailList(aMailList() as string) as boolean
        dim sBuffer as string
        dim lCount as long, i as long
        sBuffer = space(250)
        GetPrivateProfileString "usermail", "Count", "0", sBuffer, 250, "test.ini"
        lCount = Val(Replace(sBuffer, chr(0), " "))
        if lCount <= 0 then exit function    redim aMailList(lCount-1)
        for i= 0 to lCount
            GetPrivateProfileString "usermail", "Item" & i, "", sBuffer, 250, "test.ini"
            aMailList(i) = Trim(Replace(sBuffer, chr(0), " "))
        next    GetMailList = True
    end sub