Bindata

Una biblioteca de rubí que ofrece una forma de información declarativa para leer y escribir formatos de archivos binarios
Descargar ahora

Bindata Clasificación y resumen

Anuncio publicitario

  • Rating:
  • Licencia:
  • GPL
  • Precio:
  • FREE
  • Nombre del editor:
  • Dion Mendel
  • Sitio web del editor:
  • http://bindata.rubyforge.org/

Bindata Etiquetas


Bindata Descripción

Una biblioteca de rubí que ofrece una forma de información declarativa para leer y escribir formatos de archivos binarios. Bindata es una biblioteca de rubí que ofrece una forma de información declarativa para leer y escribir formatos de archivos binarios. ¿Alguna vez te encuentras escribiendo un código como este? io = file.open (...) len = io.read (2) .unpack ("v") nombre = io.read (len) ancho, altura = io.read (8) .unpack ("vv") Pone "Rectángulo # {nombre} es # {ancho} x # {altura}" Es feo, se vuelve seco y se siente como si estuvieras escribiendo perl, no ruby. Hay una mejor manera. Rectángulo de clase : len uint32le: ancho uint32le: en la altura extremo io = file.open (...) r = rectangle.read (io) pone "rectangle # { R.Name} es # {R.Width} X # {R.Height} "Bindata facilita la especificación de la estructura de los datos que está manipulando.syntax: las declaraciones de endata son fáciles de leer. Aquí hay un ejemplo. Clase MyFancyFormat lambda {(valor% 2) == 0} matriz: some_ints,: tipo =>: int32be,: inicial_length =>: cuenta end la estructura de la Los datos de este ejemplo son: 1. Una cadena terminada cero 2. Un entero de 8 bits sin firmar que debe incluso 3. una secuencia de números enteros de 32 bits sin firmar en la forma de Big Endian, el número total de los cuales está determinado por el valor del entero de 8 bits. La Declaración de Bindata coincide con la descripción en inglés de cerca. Solo por diversión, veamos cómo implementamos esto usando pack y desempaquetar. Aquí está el código de escritura, tenga una oportunidad al código de lectura. Comment = "Este es un comentario" some_ints = File.Opes (...) DO | IO | Io.Write ( .pack ("z * cn *")) End El formato general de una declaración de endata es una clase que contiene uno o más campos. Clase MyName "foo",: param2 => bar, ... ... PENTYPE es el nombre de un tipo suministrado (por ejemplo, uint32be, cadena) o un tipo definido por el usuario. Para los tipos definidos por el usuario, convertir el nombre de la clase de CamelCase a minúsculas, el nombre de la línea inferior_style.field_name es el nombre por el que puede acceder a los datos. Use una cadena o un símbolo. Puede especificar un nombre como NIL, pero esto se describe más adelante en el tutorial. Cada campo puede tener parámetros para cómo procesar los datos. Los parámetros se pasan como un hash usando símbolos para llaves. Requisitos: · Ruby · Rubygems


Bindata Software relacionado