我读了一个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 ......)?
答案 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