rawRead using a struct with variable leght
H. S. Teoh via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Wed Jun 7 11:31:41 PDT 2017
On Wed, Jun 07, 2017 at 06:24:22PM +0000, ade90036 via Digitalmars-d-learn wrote:
> On Monday, 5 June 2017 at 16:30:53 UTC, Era Scarecrow wrote:
> > On Monday, 5 June 2017 at 16:04:28 UTC, ade90036 wrote:
> >
> > > Unfortunately the struct doesn't know at compile time what the
> > > size of the constant_pool array, or at-least was not able to
> > > specify it dynamically.
> >
> > It also won't know ahead of time how many fields, methods or
> > attributes you have either.
> >
> > First I'd say all the arrays will have to be redefined to use [],
> > rather than a fixed size.
> >
> > Glancing at the chapter information, you're probably not going to
> > have an easy time, and will have to simply have to fill in the
> > fields individually in order followed by allocating the arrays and
> > probably filling/loading those immediately (although it's possible
> > the array contents are done at the end, though it seems doubtful).
>
> Thanks for the reply.
>
> I guess i didnt pick such an easy task afterall.
>
> I shall parse each fields individually.
[...]
"Structs" with variable size fields have no direct equivalent in D's
type system, so you'll probably have a hard time mapping this directly.
What you *could* do, though, is to load the data into a ubyte[] buffer,
then create a proxy struct containing arrays where you have
variable-sized fields, with the arrays slicing the ubyte[] buffer
appropriately. Unfortunately, yes, this means you have to parse the
fields individually in order to construct these slices.
T
--
This is a tpyo.
More information about the Digitalmars-d-learn
mailing list