Thread overview | ||||||
---|---|---|---|---|---|---|
|
March 25, 2016 rawWrite of a struct suggestions | ||||
---|---|---|---|---|
| ||||
I've got a simple struct: struct Chnk { ulong id; char[20] wrd; ubyte length; ... <--various utility functions and constructors } That I'm trying to write to a file. I want to use an unformatted read/write because I want this to be a random access file. But when I try to cast a Chnk to a ubyte[], I get an error, and when I try to to!ubyte[] it I get a slightly different error:: Error: template instance isRawStaticArray!() does not match template declaration isRawStaticArray(T, A...) I don't want to copy it twice each time I read or write it, as I would if, e.g., I used OutBuffer. How should I approach this? Do I need to use fread/fwrite? I'm sure I used to be able to pass a pointer and length, but I can't find that option anymore. |
March 25, 2016 Re: rawWrite of a struct suggestions | ||||
---|---|---|---|---|
| ||||
Posted in reply to Charles Hixson | On Friday, 25 March 2016 at 18:25:28 UTC, Charles Hixson wrote:
> But when I try to cast a Chnk to a ubyte[], I get an error, and
rawWrite takes a generic array of anything... you should be able to rawWrite((&your_object)[0 .. 1])
|
March 25, 2016 Re: rawWrite of a struct suggestions | ||||
---|---|---|---|---|
| ||||
Posted in reply to Adam D. Ruppe |
On 03/25/2016 11:32 AM, Adam D. Ruppe via Digitalmars-d-learn wrote:
> On Friday, 25 March 2016 at 18:25:28 UTC, Charles Hixson wrote:
>> But when I try to cast a Chnk to a ubyte[], I get an error, and
>
> rawWrite takes a generic array of anything... you should be able to rawWrite((&your_object)[0 .. 1])
>
Thanks, that compiled. It's running a test now...and I'm leaving it for a few hours.
|
March 26, 2016 Re: rawWrite of a struct suggestions | ||||
---|---|---|---|---|
| ||||
OK, after removing a few bugs, preliminary checks say that this works perfectly.
Thanks again, as I never would have even considered that approach.
On 03/25/2016 12:24 PM, Charles Hixson via Digitalmars-d-learn wrote:
>
> On 03/25/2016 11:32 AM, Adam D. Ruppe via Digitalmars-d-learn wrote:
>> On Friday, 25 March 2016 at 18:25:28 UTC, Charles Hixson wrote:
>>> But when I try to cast a Chnk to a ubyte[], I get an error, and
>>
>> rawWrite takes a generic array of anything... you should be able to rawWrite((&your_object)[0 .. 1])
>>
> Thanks, that compiled. It's running a test now...and I'm leaving it for a few hours.
>
>
|
Copyright © 1999-2021 by the D Language Foundation