如何从字节数组中取出字节并获取数字

时间:2012-12-20 17:44:47

标签: vb.net

我读了一个900字节的二进制文件,里面有很多信息 像这样:

     Dim myFile As String = txt_mydir.Text + "\MY_FILE.BIN"
     If IO.File.Exists(myFile) Then
        Dim fInfo As New FileInfo(myFile)
        Dim numBytes As Long = fInfo.Length
        Dim fStream As New FileStream(myFile, FileMode.Open, FileAccess.Read)
        Dim br As New BinaryReader(fStream)
        Dim data As Byte() = br.ReadBytes(CInt(numBytes))

所有字节都以字节数'数据'结束。

现在我必须读取用VB6结构写入该文件的数字。结构是我的,我知道什么是什么,什么是什么。 例如,我需要一个VB.NET“短”号,它位于字节81和82。 其中我有其他所有基本数字类型。

如何从特定位置的'data'中取出所需的字节数,具有精确的长度并从中获取正确的数字(short,int,double ......)?

1 个答案:

答案 0 :(得分:1)

使用BinaryReader的方法获取原始结构的字段

Dim i As Integer = br.ReadInt32()
Dim d As Double = br.ReadDouble()
Dim s As String = br.ReadString()

等等。您必须以与写入文件的顺序完全相同的顺序读取字段。

将它嵌入这样的循环中

While br.BaseStream.Position() <> inFile.BaseStream.Length()
    ...
End While