我想将红色块中的文本(见下图)导入 vb.net windows 窗体应用程序中的richtextbox(图像取自十六进制编辑器)有没有简单的方法可以做到这一点?
我试图使用谷歌找到我的问题的答案,但我在那里找到的示例要么不起作用,要么解释了如何在 Visual Basic 中制作完整的十六进制编辑器。
如果要使用 ASCII 编码,只需执行以下操作:
RichTextBox1.Text = File.ReadAllText(filePath, Encoding.ASCII)
如果您想要另一种编码,只需指定一个不同的编码。例如,对于 UTF8,使用Encoding.UTF8
.
边注:
从技术上讲是正确的,左边的十六进制数字是实际的字节值。右边的文本(在红色框中)不是字节——它是这些字节的 ASCII 表示。
如果您知道字符是 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
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