bit-struct and arrays of members?

M

Markus Fischer

Hi,

I'm using the bit-struct [1] (which is just awesome, btw) and wondering
how I can realize arrays of members.

I'm reading binary data from pre-existing files which are based on C
structs which look similar to this basic example:

struct {
int vector[5];
...
} vector_t;

My current solution is to just write:

class Vector < BitStruct
default_options :endian => :little
signed vector_1, 32
signed vector_2, 32
signed vector_3, 32
....

I would prefer to use an array. I couldn't figure out how to do it,
there's no example with it and I start to think it's not possible ... ?

thanks,
- Markus

[1] http://redshift.sourceforge.net/bit-struct/
 
J

Joel VanderWerf

Markus said:
Hi,

I'm using the bit-struct [1] (which is just awesome, btw) and wondering
how I can realize arrays of members.

I'm reading binary data from pre-existing files which are based on C
structs which look similar to this basic example:

struct {
int vector[5];
...
} vector_t;

My current solution is to just write:

class Vector < BitStruct
default_options :endian => :little
signed vector_1, 32
signed vector_2, 32
signed vector_3, 32
...

I would prefer to use an array. I couldn't figure out how to do it,
there's no example with it and I start to think it's not possible ... ?

thanks,
- Markus

[1] http://redshift.sourceforge.net/bit-struct/

Sorry, no support for that (yet). IIRC one of the other libs has
something for this, maybe it was binstruct or binaryparse.

It's not really too different from the #nest construct, so maybe it
could be added along those lines, as long as the array length is static.
Will think about it...
 
J

Joel VanderWerf

Markus said:
I'm using the bit-struct [1] (which is just awesome, btw) and wondering
how I can realize arrays of members.

Here's a quick implementation and some examples. The main limitation
(that I'm aware of) is that a Vector cannot yet be embedded in another
BitStruct. Will think about that (note hypothetical syntax)...

http://pastebin.com/ma74d15d
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,995
Messages
2,570,228
Members
46,818
Latest member
SapanaCarpetStudio

Latest Threads

Top