www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.learn - how to raw read a struct or value?

reply hasnoth <hasnoth mail.com> writes:
  auto file = io.File("test.txt", "rb");
  auto fp = file.getFP();
  int x;
  io.fread(&x, x.sizeof, 1, fp);

  what's the “d method” to do that?
Jul 14 2011
parent reply Graham Fawcett <fawcett uwindsor.ca> writes:
On Thu, 14 Jul 2011 09:01:29 +0000, hasnoth wrote:

 auto file = io.File("test.txt", "rb");
   auto fp = file.getFP();
   int x;
   io.fread(&x, x.sizeof, 1, fp);
 
   what's the “d method” to do that?

The same method: import core.stdc.stdio : fread; fread(&x, x.sizeof, 1, fp); or, if you are using an array, you can use File.rawRead: int[10] xx; f.rawRead(xx); Graham
Jul 14 2011
next sibling parent "Steven Schveighoffer" <schveiguy yahoo.com> writes:
On Thu, 14 Jul 2011 09:36:47 -0400, Graham Fawcett <fawcett uwindsor.ca>=
  =

wrote:

 On Thu, 14 Jul 2011 09:01:29 +0000, hasnoth wrote:

 auto file =3D io.File("test.txt", "rb");
   auto fp =3D file.getFP();
   int x;
   io.fread(&x, x.sizeof, 1, fp);

   what's the =C2=93d method=C2=94 to do that?

The same method: import core.stdc.stdio : fread; fread(&x, x.sizeof, 1, fp); or, if you are using an array, you can use File.rawRead: int[10] xx; f.rawRead(xx);

In fact, you can read a struct/int this way too: f.rawRead((&x)[0..1]); -Steve
Jul 14 2011
prev sibling parent Graham Fawcett <fawcett uwindsor.ca> writes:
On Thu, 14 Jul 2011 13:05:33 -0400, Steven Schveighoffer wrote:

 On Thu, 14 Jul 2011 09:36:47 -0400, Graham Fawcett <fawcett uwindsor.ca>
 wrote:
 
 On Thu, 14 Jul 2011 09:01:29 +0000, hasnoth wrote:

 auto file = io.File("test.txt", "rb");
   auto fp = file.getFP();
   int x;
   io.fread(&x, x.sizeof, 1, fp);

   what's the “d method” to do that?

The same method: import core.stdc.stdio : fread; fread(&x, x.sizeof, 1, fp); or, if you are using an array, you can use File.rawRead: int[10] xx; f.rawRead(xx);

In fact, you can read a struct/int this way too: f.rawRead((&x)[0..1]); -Steve

Aha! that makes sense. Thanks, Steve. Graham
Jul 14 2011