On Sat, Dec 20, 2008, Ravi Kondamuru wrote:
>I am trying to use xstruct module to unpack a varaible size record with the
>following structure.
>
>struct nameid {
>        u32bits len /* total length */
>u32bits id;
>char name; /* name variable length */
>}
>
>As can be seen the length of the name = len - (sizeof(len) + sizeof(id)).
>
>How do  I use xstruct or struct to unpack such a structure?
>
>n = xstruct.structdef(xstruct.little_endian, [
>        ('len', (xstruct. unsigned_long, 1)),
>        ('id', (xstruct.unsigned_long, 1)),
>        ('name', (xstruct.string, <?>)),
>])
>
>xstruct seems to expect the exact len to be specified in structdef. Is there
>a way to tell it to go till the end of the buffer passed?

I haven't done this in python yet, but when handling things like
this in C and perl, I have done it with two reads, the first to
get the length, the second to read the data with that length.

Bill
-- 
INTERNET:   b...@celestial.com  Bill Campbell; Celestial Software LLC
URL: http://www.celestial.com/  PO Box 820; 6641 E. Mercer Way
Voice:          (206) 236-1676  Mercer Island, WA 98040-0820
Fax:            (206) 232-9186

Independent self-reliant people would be a counterproductive anachronism
in the collective society of the future where people will be defined by
their associations.  1896 John Dewey, educational philosopher, proponent
of modern public schools.
_______________________________________________
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor

Reply via email to