On 27/08/15 9:00 PM, Andrew Brown wrote:
Hi,
I need to read a binary file, and then process it two bits at a time.
But I'm a little stuck on the first step. So far I have:
import std.file;
import std.stdio;
void main(){
auto f = std.file.read("binaryfile");
auto g = cast(bool[]) f;
writeln(g);
}
but all the values of g then are just true, could you tell me what I'm
doing wrong? I've also looked at the bitmanip module, I couldn't get it
to help, but is that the direction I should be looking?
Thanks very much
Andrew
You do not use the std.file to prefix call read.
The bool type is one byte in size. A value of 0 is false, anything else
is true. But commonly defined as 1.
So if you want to read only one bit you will need to use e.g. bit shifts
and bitwise and operator.
I believe bitsSet may help you.
http://dlang.org/phobos/std_bitmanip.html#.bitsSet