更新字节数组中以index开头的值

时间:2018-03-22 09:28:05

标签: arrays vb.net

我有一个100字节的字节数组。

从0到15,这些字节对应于parameter1,
从16到50,对应于参数2,
从51到80对应于parameter3,
从81到99对应于parameter4

索引1,15,16,50,51,80,81,99未修复。它们随参数

而变化

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

我该如何实现?

谢谢

P.S。下面是一个简单的例子。我将字节“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 个答案:

答案 0 :(得分:1)

到目前为止,我已经找到了这个:

    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
傻了我,我觉得它更复杂了

如果您发现更高效或更好的其他解决方案,请随时发布...

答案 1 :(得分:1)

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

以下陈述将按照您的意愿行事。

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

其中

  • dataArray是您从设备中读取的数据
  • parm3Index是数组
  • 中parameter3的索引
  • parm3Array是一个数组,包含要将parameter3更改为
  • 的字节