0

多くの情報が入った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))

すべてのバイトはbytearray'data'で終了します。

次に、VB6構造体で書き込まれた数値をそのファイルに読み込む必要があります。構造体は私のものであり、私は何が何で、どこが何であるかを知っています。たとえば、バイト81と82にあるVB.NETの「短い」番号が必要です。その中には、他のすべての基本的な番号タイプがあります。

特定の場所の「データ」から正確な長さで必要なバイト数を取り出し、そこから適切な数(short、int、double ...)を取得するにはどうすればよいですか?

4

1 に答える 1

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
于 2012-12-20T17:55:56.130 に答える