Cooly(准备失业的苦力)
我收到的就是字符长啊
因为我是用串口收数据的
If MSComm1.InBufferCount >= 1 Then
   
    buf = MSComm1.Input
End If

解决方案 »

  1.   

    Cooly(准备失业的苦力)
    我的buf是string
     Dim buf As String
      

  2.   

    如果确定 buf 中全部是 string字符,不可能有问题看看你接收到的 BUF 中有没有什么异常的东西
      

  3.   

    我收到的buf就是
    +CMGR:"REC UNREAD","13601795174","03/03/07,16:42:47+02"
    19999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
    我已经用text1.text=text1.text&buf
    能显示出来了
    Private Sub Timer1_Timer()
    If MSComm1.InBufferCount >= 1 Then
        buf = MSComm1.Input
    Text1.Text = Text1.Text & buf & vbCrLf 
    End Ifif InStr(buf, "CMGR") > 0 Then
                MsgBox "received"
    endifEnd Sub
      

  4.   

    Cooly(准备失业的苦力)我就是想判断收到的字符串中有没"CMGR"
    找个词
      

  5.   

    是不是有控制符在你的buf中?
      

  6.   

    Private Sub Timer1_Timer()
    If MSComm1.InBufferCount >= 1 Then
        buf = MSComm1.Input
    Text1.Text = Text1.Text & buf & vbCrLf 
    End IfIf InStr(Replace(buf,Chr(34),""), "CMGR",1) > 0 Then
       MsgBox "received"
    End IfEnd Sub
      

  7.   

    过滤掉一切asc码小于20的东西,我现在做的东西就是串口
    无线的,有时候会收到chr(0)
      

  8.   

    如果想串s1的值为 "
    映这样赋值:s1 = """"
    debug.print s1 & "hh""hh不知是否是这个原因,参考
      

  9.   

    引号的ASCII的码是34,在查找前先将引号用Replace替换,再过滤掉一切ASCII码小于20的字符(即控制字符),再查找应该就行了
      

  10.   

    Tenner(Tenner) ( ) 
    我用replace把引号替换了,可是还是不行
    怎么过滤ASCII小于20的字符
    ??