100分!!!紧急求助,Byte转String不完全

青岛小帅锅 2013-04-07 09:37:55
==== 用记事本打开的这个文件=====

PROG~ 5515B36C02.pgmMAKE.pat5515B36C02.tim5515B36C02.pwr RED Power - 1
Timing - 1  33S@33S@ ? ??啷?^^;?@ 33S@ 2 GREEN  A
33S@33S@ ? ??啷?^^;?@ 33S@ 2 BLUE  A
33S@33S@ ? ??啷?^^;?@ 33S@ 2 EDID1\DEFAULT1.edd ?



=== 用程序读出来咋是这样子的呢===

PROG~




好像没有转换利索一样子。。。

==== 代码如下===

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim fn As New IO.FileStream("D:\Program Files\Chroma\CFPT 2912\Program\5515B36C02.pgm", IO.FileMode.Open)
Dim fr As New IO.BinaryReader(fn)
Dim data() As Byte = fr.ReadBytes(1000)
TextBox1.Text = System.Text.Encoding.ASCII.GetString(data)
fr.Close()
fn.Close()
End Sub

...全文
188 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
青岛小帅锅 2013-04-07
  • 打赏
  • 举报
回复
引用 9 楼 gxingmin 的回复:
里面有\0的字符,字符串遇到\0就截断了 你去掉\0字符吧 Visual Basic code?123456789101112 Dim fn As New IO.FileStream("D:\Program Files\Chroma\CFPT 2912\Program\5515B36C02.pgm", IO.FileMode.Open) Dim fr A……
大大的感谢!! 您60 8楼40 谢谢!!
gxingmin 2013-04-07
  • 打赏
  • 举报
回复
里面有\0的字符,字符串遇到\0就截断了 你去掉\0字符吧
 Dim fn As New IO.FileStream("D:\Program Files\Chroma\CFPT 2912\Program\5515B36C02.pgm", IO.FileMode.Open)
        Dim fr As New IO.BinaryReader(fn)
        Dim data() As Byte = fr.ReadBytes(1000)
        For i As Integer = 0 To data.Length - 1
            If (data(i) = 0) Then
                data(i) = 32
            End If
           
        Next
        TextBox1.Text = System.Text.Encoding.ASCII.GetString(data)
        fr.Close()
        fn.Close()
threenewbee 2013-04-07
  • 打赏
  • 举报
回复
估计是有\0 Dim data() As Byte = fr.ReadBytes(1000).Where(Function(x) CInt(x) <> 0).ToArray()
wirner 2013-04-07
  • 打赏
  • 举报
回复
引用 1 楼 gxingmin 的回复:
TextBox1.Text = System.Text.Encoding.ASCII.GetString(data) 你这是ascii方式读的,换其他编码格式读试试Default,UTF8等等 如: TextBox1.Text = System.Text.Encoding.Default.GetString(data)
青岛小帅锅 2013-04-07
  • 打赏
  • 举报
回复
引用 4 楼 gxingmin 的回复:
不用二进制,直接读试试 Dim sr As IO.StreamReader = New IO.StreamReader("D:\Program Files\Chroma\CFPT 2912\Program\5515B36C02.pgm", System.Text.Encoding.Default) '换UTF8,UTF32等编码 textbox1.……
还是不行。。。 试过了。。。直接读也是不行。。
gxingmin 2013-04-07
  • 打赏
  • 举报
回复
不用二进制,直接读试试 Dim sr As IO.StreamReader = New IO.StreamReader("D:\Program Files\Chroma\CFPT 2912\Program\5515B36C02.pgm", System.Text.Encoding.Default) '换UTF8,UTF32等编码 textbox1.Text = sr.ReadToEnd() sr.Close()
  • 打赏
  • 举报
回复
用写字板或者其他文本工具看一下,换不同的编码看看
青岛小帅锅 2013-04-07
  • 打赏
  • 举报
回复
]
引用 1 楼 gxingmin 的回复:
TextBox1.Text = System.Text.Encoding.ASCII.GetString(data) 你这是ascii方式读的,换其他编码格式读试试Default,UTF8等等 如: TextBox1.Text = System.Text.Encoding.Default.GetString(data)
我尝试过了 都一样。。。好像遇到空格就挂了。。。
gxingmin 2013-04-07
  • 打赏
  • 举报
回复
TextBox1.Text = System.Text.Encoding.ASCII.GetString(data) 你这是ascii方式读的,换其他编码格式读试试Default,UTF8等等 如: TextBox1.Text = System.Text.Encoding.Default.GetString(data)

110,539

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧