BINDATA.

Uma biblioteca Ruby que oferece uma maneira declarativa de ler e escrever formatos de arquivo binários
Baixe Agora

BINDATA. Classificação e resumo

Propaganda

  • Rating:
  • Licença:
  • GPL
  • Preço:
  • FREE
  • Nome do editor:
  • Dion Mendel
  • Site do editor:
  • http://bindata.rubyforge.org/

BINDATA. Tag


BINDATA. Descrição

Uma biblioteca Ruby que oferece uma maneira declarativa de ler e escrever formatos de arquivo binários Bindata é uma biblioteca Ruby que oferece uma maneira declarativa de ler e escrever formatos de arquivo binários.Você já se encontrou escrevendo código como este? io = file.open (...) len = io.read (2) .unpack ("v") Nome = IO.read (Len) Largura, altura = io.read (8) .unpack ("vv") coloca "Retângulo # {NAME} é # {largura} x # {alture}" É feio, viola seco e sente como se estivesse escrevendo Perl, não Ruby. Há um caminho melhor. Rectângulo de classe : Len Uint32le: largura uint32le: altura final io = file.open (...) r = retângulo.read (io) põe "retângulo # { R.Name} é # {r.width} x # {r.height} "Bindata facilita a especificação da estrutura dos dados que você está manipulando.Syntax: As declarações de Bindata são fáceis de ler. Aqui está um exemplo. Classe MyFancyFormat lambda {(valor% 2) == 0} Array: some_ints,: Type =>: int32be ,: initial_length =>: contagem end a estrutura do Os dados neste exemplo são: 1. Uma string terminada zero 2. Um inteiro de 8 bits não assinado que deve até 3. Uma seqüência de inteiros de 32 bits não assinados no formulário Grande Endian, o número total determinado pelo valor do inteiro de 8bit. A Declaração Bindata corresponde à descrição em inglês de perto. Apenas por diversão, vamos ver como implementaríamos isso usando o pacote e descompactar. Aqui está o código de escrita, tenha um código de leitura. Comentário = "Este é um comentário" Alguns_ints = File.Open (...) Do | IO | io.write ( .pack ("z * cn *")) End O formato geral de uma declaração de Bindata é uma classe contendo um ou mais campos. Classe Myname "foo",: param2 => bar, ... ... ... ... Endtype é o nome de um tipo fornecido (e.g. uint32be, string) ou um tipo definido pelo usuário. Para tipos definidos pelo usuário, converta o nome da classe do Camelcase para minúsculas em minúsculas.field_name é o nome pelo qual você pode acessar os dados. Use uma string ou um símbolo. Você pode especificar um nome como nil, mas isso é descrito posteriormente no campo Tutorial.Ach pode ter parâmetros para processar os dados. Os parâmetros são passados como hash usando símbolos para chaves. Requisitos: · Ruby. · Rubygems.


BINDATA. Software Relacionado