我从串口中一次读出很多数据,这些字节数组中有很多以 0x0a 0x0d或0x0d 0x0a结束符;如何把把这些字节结束符分割开?

解决方案 »

  1.   

    不知道你要如何分割,有个设计说明么?如果没有更多参考背景的情况下,那么只能简单从事。比如将所有分隔符的位置找出来,然后分别按照“一段一段”的字节复制(先根据一小段距离的长度声明byte[],然后复制相应的字节)到一个List<byte[]>集合中。
      

  2.   

    分隔应该不是最终目的,否则连续存放未尝不可。请说出你的最终目的,视情况可找到无需分割即可实现的快速解决方案。
     此消息通过 【CSDN论坛 Winform测试版】 回复!
      

  3.   


    比如我读取到一大串数据,但我需要总其中找到的是02020300000000000A0D格式的数据,开头两个字节是 0x02 0x02,结尾是0a、0d的数据,里面可能很多这样的数据,该怎么提取出来?
      

  4.   

    写个循环,从0开始遍历字节数组,遇到连续两个0x02的,就开始记录,之后的数据存入新的变量中,遇到0a0d就结束一次记录,之后继续循环查找连续两个0x02,直到字节数组结束。
    别看循环似乎不雅,其实对数组按照字节循环遍历是非常高效的操作,它内部也是这么做的。
     此消息通过 【CSDN论坛 Winform测试版】 回复!
      

  5.   

    看来你没有去搞明白你的数据的应用领域知识,只想搞一个技术化的所谓答案。我为什么问那个问题呢?因为许多命令通信是使用可读的字符串内容的,是把byte[]放入MemoryStream然后使用StreamReader按照一行一行自动读出来的。而你看来喜欢一下在解决问题,不喜欢一步一步解决问题(前提是将需求变得简单和具体)。