我定义个变量
dim strTemp as string * 3
我现在只接收两位长字符串,如
strTemp = "1b"
因为len(strTemp)=4(永久)我现在想问一下,后两位是什么字符,怎么能够去掉,就是我只要"1b",我用trim(strTemp)试试,不行,没有去掉,后来一看,后两位原来是两个不可见字符。我该怎么去掉这两个不可见字符呢????谢谢了。我的编程环境:window 2000 server + sp4
              visual studio 6.0 + sp5

解决方案 »

  1.   

    程序代码
    ----------------------------------
        Dim a As String * 3
        a = "a"
        Debug.Print "|" & a & "|"
        For i = 1 To Len(a)
            Debug.Print "mid(a," & i & ",1)=" & Mid(a, i, 1), "asc(mid(a," & i & ",1)=" & Asc(Mid(a, i, 1))
        Next
    ----------------------------------
    输出结果
    |a  |
    mid(a,1,1)=a  asc(mid(a,1,1)=97
    mid(a,2,1)=   asc(mid(a,2,1)=32
    mid(a,3,1)=   asc(mid(a,3,1)=32
      

  2.   

    debug.print midb(strTemp,5,1)
    debug.print midb(strTemp,6,1)
      

  3.   

    strTmp + chr(0)可以把尾部的NULL去掉之所以後面有空的,我想是因為像C一樣,要加一個"\0"值作為結束標志
      

  4.   

    Debug.Print "|" & Trim(Text1.Text) & "|"
    strTemp = Trim(Text1.Text)
    Debug.Print "|" & Trim(strTemp) & "|"
    我使用上面的测试,怎么两个结果是一样的呀。strTemp+chr(0)这是什么原理呀。我试了也不行的。
      

  5.   

    奇怪了还!我Dim a as string *3:A="CD":Debug.Print Len(A) 还是3啊
      

  6.   

    这个问题我解决了。如三楼所说:定长字符串是一个特殊字符为结束位的。所以我们在使用的过程中可以这样处理:
    dim Result as string
    dim strTemp as string *10
    strTemp ="abcd"
    debug.print strTemp  '结果是: abcd_________chr(0)
    result=trim(left(strTemp,len(strTemp)-1))
    debug.print result   '结果是: abcd
    原理就是我们使用trim函数的时候,要把最后一位剔除掉就行了。