2009-07-23 51 views
8

Necesito poder analizar un archivo binario con Ruby. Este archivo contiene fragmentos de datos que se encuentran a través de un encabezado que incluye el desplazamiento del archivo y la longitud de cada fragmento.Analizando un archivo binario en Ruby

¿Cómo obtengo los datos correctamente? Hasta ahora no he podido buscar en el archivo en función de los desplazamientos que leí, ya que aparecen en cadenas que no sé cómo convertir a un formato que IO # seek entiende.

¿Algún ayuda? Una forma general de convertir el desplazamiento y la longitud en algo utilizable (como un entero o algo así) sería útil.

Respuesta

6

Quiere String#unpack.

+0

Eso fue todo. desempaquetar ('L *') es lo que necesitaba. –

+1

Debería utilizar explícitamente los desempaques little-endian o big-endian en lugar de native-endian, para mantener un poco la portabilidad. – hhaamu

2

También puede consultar BitStruct que ofrece una buena interfaz de alto nivel para analizar datos binarios.

+0

Enlace actualizado: https://github.com/vjoel/bit-struct – odigity

Cuestiones relacionadas