0
У меня есть эта ошибка на vb.net «невозможно прочитать за пределами потока». Это происходит, когда я скомпилирую программу, и она там ломается.Загрузите файлы на vb.net
Dim red As Byte = br.ReadByte()
Dim green As Byte = br.ReadByte()
Dim blue As Byte = br.ReadByte()
Dim flags As Byte = br.ReadByte()
Но я также даст весь код:
Public Shared Function LoadPal(filename As String) As List(Of Color)
Dim colors As New List(Of Color)()
Dim stream As New FileStream(filename, FileMode.Open, FileAccess.Read, FileShare.Read)
Using br As New BinaryReader(stream)
' RIFF header
Dim riff As String = ReadByteString(br, 4)
' "RIFF"
Dim dataSize As Integer = br.ReadInt32()
Dim type As String = ReadByteString(br, 4)
' "PAL "
' Data chunk
Dim chunkType As String = ReadByteString(br, 4)
' "data"
Dim chunkSize As Integer = br.ReadInt32()
Dim palVersion As Short = br.ReadInt16()
' always 0x0300
Dim palEntries As Short = br.ReadInt16()
' Colors
For i As Integer = 0 To palEntries - 1
Dim red As Byte = br.ReadByte()
Dim green As Byte = br.ReadByte()
Dim blue As Byte = br.ReadByte()
Dim flags As Byte = br.ReadByte()
' always 0x00
colors.Add(Color.FromArgb(red, green, blue))
Next
End Using
Return colors
End Function
Private Shared Function ReadByteString(br As BinaryReader, length As Integer) As String
Return Encoding.ASCII.GetString(br.ReadBytes(length))
End Function
Ваш файл имеет меньше байт, чем вы ожидаете там быть. Вы либо (1) неправильно читаете, либо (2) имеете поврежденный файл. –