代码之家  ›  专栏  ›  技术社区  ›  el tigre

更新字节数组中以索引开头的值的数目

  •  1
  • el tigre  · 技术社区  · 7 年前

    我有一个字节数组,比如说,100个字节。

    从0到15,这些字节对应于参数1,
    从16到50,对应参数2,
    51到80对应参数3,
    从81到99对应参数4

    指标1、15、16、50、51、80、81、99不固定。它们随参数变化

    我从设备读取字节。例如,我必须更新参数3的字节。

    我如何才能做到这一点?

    非常感谢。

    P、 下面是一个简单的例子。我将字节“23”和“34”替换为“99”

    Dim temp As Byte() = New Byte() {12, 23, 12, 23, 34, 56, 67, 89}
    Dim tempReplaced As Byte() = New Byte() {12, 23, 12, 99, 99, 56, 67, 89}
    
    2 回复  |  直到 7 年前
        1
  •  1
  •   Blackwood    7 年前

    这个 Array.Copy method 将指定的元素集从一个数组复制到另一个数组。

    下面的语句将满足您的需要。

    Array.Copy(dataArray, parm3Index, parm3Array, 0, parm3Array.Length)
    

    哪里

    • dataArray 是您从设备读取的数据
    • parm3Index 是数组中参数3的索引
    • parm3Array 是包含要将参数3更改为的字节的数组
        2
  •  1
  •   el tigre    7 年前

    到目前为止,我发现:

        Public Shared Sub ReplaceByteArray(ByRef sourceArray As Byte(), arrayToReplace As Byte(), startPosition As Integer, length As Integer)
    
        Dim counter As Integer = 0
        While counter < length
            sourceArray(startPosition + counter) = arrayToReplace(counter)
            counter += 1
        End While
    
    End Sub
    

    我真傻,我觉得更复杂

    如果你发现另一个更有效或更好的解决方案,请随时发布。。。