AnswerLen = MSC1.InBufferCount
   Tmp = MSC1.Input
   Tmps = StrConv(Tmp, vbFromUnicode)
    
    For I = 1 To LenB(Tmps) Step 9
.......Tmp  Tmps ——都是String格式
发现AnswerLen 比LenB(Tmps)多了一个怎么回事啊急!!!!!!!

解决方案 »

  1.   

    你是比较字符的,所以应该用Len(Tmps)而不要LenB(Tmps),
    Len(Tmps)是等于AnswerLen的.
      

  2.   

    dim bytTmps() as byte
    Tmp = MSC1.Input
    bytTmps= StrConv(Tmp, vbFromUnicode)
        
        For I = 0 To Ubound(bytTmps) Step 9...........
      

  3.   

    如果我们希望中文字长度为 2,英文字符为 1。可用以下的函数:
    LenB(StrConv("汉1", vbFormUnicode))   '值为三
    比如:
    Private Sub Form_Load()
    t1 = Len("汉1")
    Debug.Print t1
    t = LenB(StrConv("汉1", vbFromUnicode))
    Debug.Print t
    End Sub
    所以看看你的Tmp中有没有汉字(猜测而以)
      

  4.   

    编码不同的问题。同一标准就可以,你都用unicode编码就可以。