ValueFromIni = IIf(GetPrivateProfileString(strSectionName, strKeyName, _
            "", strKeyValue, Len(strKeyValue), strFileName), Left(strKeyValue, _
            InStr(strKeyValue, Chr(0)) - 1), "")

解决方案 »

  1.   

    用你的写法
    Function readvalue(appname As String, keyname As String, ByVal filename As String)
    rtn = String$(255, 0)
    Dim aerr
    aerr = GetPrivateProfileString(ByVal appname, ByVal keyname, "", rtn, 127, filename)if aerr then
      rtn = left(rtn, instr(rtn,chr(0))-1)
    end if
    readvalue = rtn
    End Function
      

  2.   

    谢谢ozw(沧浪客)先,
    我把你的代码,COPY过去,可以读出VALUE值,当下大喜过望.可是自己研读兄之代码,
    与吾并无大异,缓冲区长度?这个应无关紧要.后面的IF语句?可是如果aerr返回0,这也
    等于没写啊.
    于是我有COPY回我的代码,一样可以读出value值!!呵呵,不知道是今天运气好,还是昨天
    太烦,没有仔细测.
    可是试着读取KYE队列,还是不行,于是再度COPY兄之代码.略加修改后,编译.运行..
    还是读不出来...555...
    试了n多方法之后,唯叹天绝我而.
      

  3.   

    是啊,而且我发现rtn缓冲区最多只能放127个字符,就是你设的再多,超过127以后他也就那
    chr(0)来凑数,烦!!!
      

  4.   

    是吗?昨天不太注意
    应该改一改
    Function readvalue(appname As String, keyname As String, ByVal filename As String)
    rtn = String$(255, 0)
    Dim aerr
    aerr = GetPrivateProfileString(ByVal appname, ByVal keyname, "", rtn, len(rtn), filename)if aerr then
      rtn = left(rtn, instr(rtn,chr(0))-1)
    else
      rtn=""
    end if
    readvalue = rtn
    End Function