Bueno, antes decir que soy algo novato en el tema de la programación pero ya se hacer mis cosas.
Estoy en un proyecto en el cual voy a editar un archivo (*.bin); Este archivo trae información que quiero descodificar.
El archivo esta compuesto por bloques de una longitud de 206 bytes, cada bloque trae unos parámetros que son la información que quiero descodificar.
Ejemplo:
Cada bloque empieza por una cadena que le vamos a llamar "nombre".
Para cargar dicha información utilizo el siguiente método.
Código:
Ya en este método tengo un problema, este método me lee el archivo hasta el final... y yo quiero que lea hasta cierto offset; Ejemplo: 2316739Using fs As FileStream = New FileStream("FILE.bin", FileMode.Open, FileAccess.Read, FileShare.Read) Using br As BinaryReader = New BinaryReader(fs) Const START As Long = 694 Const STR_LEN As Long = 22 Const SEC As Long = 206 fs.Seek(START, SeekOrigin.Begin) Do Dim bytes() As Byte = br.ReadBytes(STR_LEN) Dim value As String = Encoding.ASCII.GetString(bytes) If (fs.Position + SEC + STR_LEN) >= fs.Length Then Exit Do Else ListBox1.Items.Add(value) End If Loop End Using End Using
Como podría solucionarlo?
Ahora vamos con la segunda parte del problema.
Una vez cargados esos datos en el listbox, como podría hacer en el evento SelectedIndexChanged, al cambiar de item me cargara los datos de cada bloque según el offset?
Ejemplo:
Si después de cada "nombre" a una distancia por ejemplo (6 bytes) hay un valor que quiero cargar en un textbox y quiero este valor lo vuelva a cargar al cambiar de item y cargando los datos según el bloque.
Agradecería de sobremanera la ayuda. Espero que seáis pacientes y podáis ayudarme.
Un saludo.