指定されたバイト配列を、指定値で埋める関数です。バイト配列などは通常は使用しないのですが、制御関係などでは使用することもあり、 初期値として、バイト配列を設定する必要があります。
関数として以下に2種類の関数を例に示していますが、最初は単純に配列1個ずつに指定バイト値を設定しているだけです。 関数にするほどでもないのですが、この関数を元にしてInteger型の配列やDouble型の配列の初期化用の関数をオーバーライドすることができます。
2つ目の関数は、System.Linq の Enumerable を用いた方法を示します。 Enumerable.Repeat で IEnumerable なオブジェクトを生成し、更にそれをArray化して、コピーを行っています。 (こちらの方が、見やすいかもしれません。)
バイト配列を設定バイト値で埋める
''' ----------------------------------------------------------------------------- '''''' バイト配列を設定値で埋める ''' ''' <param name="desArr">対象バイト配列</param> ''' <param name="fillByte">バイト値</param> '''単純に配列を1個ずつ処理 ''' ----------------------------------------------------------------------------- Public Sub FillByteArr(ByVal desArr As Byte(), ByVal fillByte As Byte) If desArr.Length > 0 Then Dim idx As Integer For idx = 0 To desArr.Length - 1 desArr(idx) = fillByte Next End If End Sub ''' ----------------------------------------------------------------------------- '''''' バイト配列を設定値で埋める・その2 ''' ''' <param name="desArr">対象バイト配列</param> ''' <param name="fillByte">バイト値</param> '''System.Linq の Enumerable を用いた方法 ''' ----------------------------------------------------------------------------- Public Sub FillByteArr2(ByVal desArr As Byte(), ByVal fillByte As Byte) If desArr.Length > 0 Then Dim arr As IEnumerable(Of Byte) = Enumerable.Repeat(fillByte, desArr.Length) Array.Copy(arr.ToArray(), desArr, desArr.Length) End If End Sub '***** '仮にテストプログラム '***** Private Sub FillByte_Click(sender As Object, e As EventArgs) Handles FillByte.Click Try '配列宣言 Dim byteArr(10) As Byte '配列を埋める FillByteArr2(byteArr, &H55) '結果の表示 Dim str As String = "" For i = 0 To byteArr.Length - 1 str &= String.Format("byteArr[{0}] = {1}", i, byteArr(i).ToString) & vbCrLf Next MsgBox(str) Catch ex As Exception 'エラー MsgBox(ex.Message) End Try End Sub
関連する記事
⇒左詰でバイト配列のコピーを行う⇒右詰でバイト配列のコピーを行う
PR
コメント