GetPrivateProfileString VB声明 
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) 
说明 
为初始化文件中指定的条目取得字串 
返回值 
Long,复制到lpReturnedString缓冲区的字节数量,其中不包括那些NULL中止字符。如lpReturnedString缓冲区不够大,不能容下全部信息,就返回nSize-1(若lpApplicationName或lpKeyName为NULL,则返回nSize-2) 
参数表 
参数 类型及说明 
lpApplicationName String,欲在其中查找条目的小节名称。这个字串不区分大小写。如设为vbNullString,就在lpReturnedString缓冲区内装载这个ini文件所有小节的列表 
lpKeyName String,欲获取的项名或条目名。这个字串不区分大小写。如设为vbNullString,就在lpReturnedString缓冲区内装载指定小节所有项的列表 
lpDefault String,指定的条目没有找到时返回的默认值。可设为空("") 
lpReturnedString String,指定一个字串缓冲区,长度至少为nSize 
nSize Long,指定装载到lpReturnedString缓冲区的最大字符数量 
lpFileName String,初始化文件的名字。如没有指定一个完整路径名,windows就在Windows目录中查找文件 
注解 
如lpKeyName参数为vbNullString,那么lpReturnedString缓冲区会载入指定小节所有设置项的一个列表。每个项都用一个NULL字符分隔,最后一个项用两个NULL字符中止。也请参考GetPrivateProfileInt函数的注解
 

解决方案 »

  1.   

    如一个c:\aaa.ini文件内容
    [data]
    data1=4
    可这样写:
    dim sss as string*500
    dim lll as long
    dim sGet as string
    lll=GetPrivateProfileString("data","data1","",sss,500,"c:\aaa.ini")
    if lll>0 then
        sGet = left(sss,lll)
    end if
      

  2.   

    如有以下文件:C:\windows\test.ini
    内容如下:
    [recentfiles]
    file1=c:\windows\b.txt
    file2=c:\windows\a.txtfunction getinis() as string
    Dim num As Long
    Dim strResult As String
    Dim Str As String
    Str = String$(256, "0")
    num = GetPrivateProfileString ("recentfiles", "file1", "", Str, 256, "c:\windows\test.ini")
    strResult = Left$(Str, num)
    GetIniS = strResult
    end function
    返回值为:c:\windows\b.txt
      

  3.   

    注:以下资料原引自袁哥的API资料库【函数】
    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目录中查找文件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