C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


■87149 / )  Re[1]: Byte配列→文字列→Byte配列の方法策
□投稿者/ 魔界の仮面弁士 (1644回)-(2018/04/16(Mon) 16:50:37)
No87146 (io さん) に返信
> これを一旦文字列配列に直します
> 01,10 20 11 15 FF
> 02,10 20 ・・・・
最初はカンマ区切り、2 つ目以降はスペース区切りなのですね。

最初の 2 文字 + カンマは、行番号を表すのでしょうか。
(99 行目あるいは &HFF 行目を超えたときにどうなるのだろう…?)

それとも、カンマでも空白でも許容する、ということなのでしょうか。


> というのをテキストで作成し
ここでいう「テキスト」が何を指しているのか読み取れませんでした。
先ほどの「文字列」とは別のものなのですよね?


> またreadalllineで string配列に戻し
> byteListへ戻したいんですが ここができないです
文字列とバイナリを行ったり来たりしていて、処理の流れが
どうにも把握できていないのですが、ひとまず、こんな手順ではどうでしょうか。


Dim src As String() = {"01,10 20 11 15 FF", "02,10 20"}
Dim byteList As New List(Of Byte())

byteList.Clear()
For Each line As String In src
 '16進数文字列以外は捨てる
 line = New String(line.ToUpper().Where(Function(c) c Like "[0-9A-F]").ToArray())

 Using ms As New MemoryStream()
  '2文字ずつ切り出す
  For i As Integer = 0 To line.Length - 1 Step 2
   ms.WriteByte(Convert.ToByte(line.Substring(i, 2), 16))
  Next

  'byteList に詰める
  byteList.Add(ms.ToArray())
 End Using
Next
返信 編集キー/


管理者用

- Child Tree -