| ■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 |