Bindata.

Una biblioteca rubino che offre un modo dichiarativo per leggere e scrivere formati di file binari
Scarica ora

Bindata. Classifica e riepilogo

Annuncio pubblicitario

  • Rating:
  • Licenza:
  • GPL
  • Prezzo:
  • FREE
  • Nome editore:
  • Dion Mendel
  • Sito web dell'editore:
  • http://bindata.rubyforge.org/

Bindata. Tag


Bindata. Descrizione

Una biblioteca rubino che offre un modo dichiarativo per leggere e scrivere formati di file binari Bindata è una biblioteca rubino che offre un modo dichiarativo per leggere e scrivere formati di file binari. Ti ritrovi mai a scrivere codice come questo? io = file.open (...) Len = Io.read (2) .unpack ("V") Nome = Io.Read (Len) Larghezza, Altezza = IO.Read (8) .unpack ("VV") Mette "rettangolo # {name} è # {width} x # {altezza}" È brutto, viola secco e si sente come stai scrivendo perl, non rubino. C'è un modo migliore. Rettangolo di classe : Len Uint32le: width uint32le: width uint32le: altezza finale io = file.open (...) r = rettangle.read (Io) mette "rettangolo # r.name} è # {r.width} x # {r.height} "Bindata facilita la specifica della struttura dei dati che stai manipolando.SynTAX: le dichiarazioni Bindata sono facili da leggere. Ecco un esempio. Classe MyFancyFormat Lambda {(Valore% 2) == 0} Array: alcuni_int,: Type =>: INT32BE ,: Initial_Length =>: Conte End La struttura del I dati in questo esempio sono: 1. Una stringa di zero terminata 2. Un numero intero a 8 bit non firmato che deve anche anche 3. Una sequenza di numeri interi a 32 bit non firmati nella forma Big Endian, il cui numero totale è determinato dal valore dell'Integer a 8 bit. La dichiarazione Bindata corrisponde a strettamente la descrizione in inglese. Solo per divertimento, guardiamo come avremmo implementato questo utilizzando il pacchetto e disimballare. Ecco il codice di scrittura, fai un giro al codice di lettura. Comment = "Questo è un commento" alcuni_int = file.Open (...) Do | Io | io.write ( .pack ("z * cn *")) End Il formato generale di una dichiarazione Bindata è una classe contenente uno o più campi. myname di classe "foo" ,: Param2 => Bar, ... ... Endtype è il nome di un tipo fornito (E.G. UINT32BE, String) o un tipo definito dall'utente. Per i tipi definiti dall'utente, convertire il nome della classe da Camelcase in minuscolo Indessore_style.field_name è il nome con cui è possibile accedere ai dati. Utilizzare una stringa o un simbolo. È possibile specificare un nome come Nil, ma questo è descritto più avanti nel campo tutorial.ach potrebbe avere parametri su come elaborare i dati. I parametri vengono passati come hash utilizzando i simboli per i tasti. Requisiti: · Ruby. · Rubygems.


Bindata. Software correlato