On Saturday, 25 August 2012 at 20:58:47 UTC, Jonathan M Davis
wrote:
On Saturday, August 25, 2012 22:49:18 joao wrote:
Ok, so I tried both ways and gave errors:
import std.stdio, std.cstream, std.system, std.bitmanip;
File f = File("filename");
auto buf = f.rawRead(new ubyte[4]);
auto i = peek!(uint, Endian.littleEndian)(buf);
std.stdio.File conflicts with std.stream.File
Then either don't import both or use the full import.
auto file = std.stdio.File("filename");
But I wouldn't advise using std.stream for anything unless you
have to. As the
note in its documentation states, it's considered out-of-date
and will be
replaced.
and
auto file = File("filename");
auto buffer = ubyte[](4);
buffer = file.rawRead(buffer);
auto i = peek!(uint, Endian.littleEndian)(buffer);
found '[' when expecting '.' following ubyte and ']' when
expecting identifier following 'ubyte'
It's missing new. My mistake.
auto buffer = new ubyte[](4);
or as David pointed out, you get just allocate the array in the
rawRead call:
auto buf = file.rawRead(new ubyte[](4));
- Jonathan M Davis
It worked! Thanks.
Just one more question, I and to do the reverse. Like 4132 =>
"\x24\x10"