dim str as string
dim n as integerstr=string(chr(0),3000)
n=GetPrivateProfileSection("节名" , strTemp, Len(strTemp), "ini文件名")
str=left(str,instr(1,str,chr(0))-1)
  

解决方案 »

  1.   

    dim str as string
    dim n as integerstr=string(chr(0),3000)
    n=GetPrivateProfileSection("节名" , str, Len(str), "ini文件名")
    str=left(str,instr(1,str,chr(0))-1)
      
      

  2.   

    dongdong:您的说法不行,用str=string(chr(0),3000)无法分配字符串空间,再执行下一句时vb 就会执行非法操作而退出.
      

  3.   

    使用variant类型来读取数据,然后转换为字符串,再去掉空格
      

  4.   

    应该是 str=String(3000,Chr(0)) 才对。
      

  5.   

    VB操作字符串在数值大于128时操作不正常比如
    ASC(CHR$(AA) 当AA〉128时就全部等于0!!!!!!!!
    如何解决?
      

  6.   

    不是String(chr(0),3000)应该是:String(3000,0)!!dim szBuffer as string
    dim lRet as long
    szBuffer=string(3000,0)
    lRet=GetPrivateProfileSection("节名" ,szBuffer, Len(szBuffer), "ini文件名")
    if lRet>0 and lRet<>(len(szBuffer)-2) then   szBuffer=mid(szBuffer,1,instr(szBuffer,chr(0))-1)这个绝对行!
      

  7.   

    为什么试一下byte数组呢?
    上边那些做法根本就是危险的,即使在某个版本的VB上能通过。
      

  8.   

    恐怕因为buye数组不能进行字符分析。