这样做当然不能显示
因为读取字符串是以\0结尾的(C语言字符串标准)
而MsgBox实际上是调用系统的MessageBox函数
碰到\0认为字符串结束
所以不会继续显示应该这样写:
str=Left$(str,Instr(str,Chr$(0))-1) '查找\0
msgbox RTrim(str) & "abcd" '记得去掉定长字符串的多余空格

解决方案 »

  1.   

    改成这样好了。private command1_click()
      dim str as string
      str = Space(256)
      getprivateprofilestring "system","version","",str,len(str),app.path & "\ini.ini"
    str=Left$(str,Instr(str,Chr$(0))-1)
    msgbox str & "abcd"
    end sub注意问题:
    1、用dim .. as string * 256后系统自动分配内存,所以字符处理的时候可能有问题
    2、注意字符穿的末尾的空字符(vbNullChar,就是Chr(0))
      

  2.   

    多余的空字符去不掉,例如显示:“windows2000                   abcd",中间的空字符去不掉,上面两种方法差不多的,都试了,不行
      

  3.   

    private command1_click()
      dim str as string
      str = Space(256)
      getprivateprofilestring "system","version","",str,len(str),app.path & "\ini.ini"
    str=Trim(Left$(str,Instr(str,Chr$(0))-1))
    msgbox str & "abcd"
    end sub
      

  4.   

    这是因为函数中的字符串是用“Chr(0)”结束的。
      

  5.   

    这是因为API函数中的字符串是用“Chr(0)”结束的。
    上边少了“API”。我发早了对不起!