赤いブロック (下の画像を参照) から vb.net Windows フォーム アプリケーションのリッチテキスト ボックスにテキストをインポートしたい (画像は 16 進エディターから取得したものです) これを行う簡単な方法はありますか?
Google を使用して質問に対する回答を見つけようとしましたが、そこで見つかった例は機能しないか、Visual Basic で完全な 16 進エディタを作成する方法を説明しています。
文字がASCIIであることがわかっている場合は、次のように機能するはずです。
Public Function AsciiByteToChar(ByVal b As Byte) As Char
Dim barr() As Byte = New Byte() {b}
Dim carr() As Char = Encoding.ASCII.GetChars(barr)
Return carr(0)
End Function
ASCII エンコーディングを使用する場合は、次のようにします。
RichTextBox1.Text = File.ReadAllText(filePath, Encoding.ASCII)
別のエンコーディングが必要な場合は、別のエンコーディングを指定してください。たとえば、UTF8 の場合はEncoding.UTF8
.
サイドノート:
技術的には、左側の 16 進数が実際のバイト値です。右側 (赤いボックス内) のテキストはバイトではなく、これらのバイトの ASCII 表現です。
FileStream
ファイルを開きますSeek
必要な最初のバイトにRead
あなたが望む長さEncoding.UTF8
バイトを文字に変換するために(またはお好みの別のエンコーディングを)使用しますText
のプロパティTextBox
を自分の値に設定します
Public Sub Sample()
Dim f As New FileStream("filepath")
f.Seek(byteOffset, SeekOrigin.Begin)
Dim buffer(byteLength) As Byte
f.Read(buffer, 0, byteLength)
Dim chars As String = Encoding.UTF8.GetString(buffer)
txtBox.Text = chars
End Sub