我在用api函数夺取ini配置文件时,用了GetPrivateProfileString函数,但是在定义字串缓冲区区大小后,但是的到的数据每次都要在后面添加空格来填满串缓冲区,但是怎么去掉这些无用的空格呀!
下面是api函数
Option Explicit
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
Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpString As Any, ByVal lpFileName As String) As LongPublic Bip As String * 200下面是代码:
        N = GetPrivateProfileString("本地数据库", "地址", "", Bip, Len(Bip), FileName)
        Bip = Left(Bip, N)
每次bip都会被添成200个字符,但由于bip的字符串大小不一样,无法判断怎么去截取需要的一部分

解决方案 »

  1.   

    GetProfileString的返回值就是复制到的实际字节数
    ------------------------------------------------------------------------------------
    VB声明 
    Declare Function GetProfileString Lib "kernel32" Alias "GetProfileStringA" (ByVal lpAppName As String, ByVal lpKeyName As String, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Long) As Long 
    说明 
    为win.ini初始化文件中指定的条目取得字串 
    返回值 
    Long,复制到lpReturnedString缓冲区的字节数量,其中不包括那些NULL中止字符。如lpReturnedString缓冲区不够大,不能容下全部信息,就返回nSize-1(若lpAppName或lpKeyName为NULL,则返回nSize-2) 
      

  2.   

    我在我的配置文件环境上测试了一下,没有什么不妥啊?以下是源码
    ----------------------------------------------------------------------------------------------------
    Private Sub Command1_Click()    Dim nLength As Long
        Dim strValue As String * 256
        nLength = GetPrivateProfileString("ProductEdit", "Header", "", strValue, Len(strValue), App.Path & "\pagesetup.ini")
        MsgBox "长度为            :" & nLength & vbCrLf & "实际字符串为:  " & Left(strValue, nLength)
    End Sub
      

  3.   

    我在用api函数夺取ini配置文件时,用了GetPrivateProfileString函数,但是在定义字串缓冲区区大小后,但是的到的数据每次都要在后面添加空格来填满串缓冲区,但是怎么去掉这些无用的空格呀!
    --------------------------------------------------------------------------------------
    如果是为了纯粹的去掉空格,,TRIM,RTRIM都可以完成。