Simple file manipulation

BLS windevguy at hotmail.de
Wed May 20 02:19:09 PDT 2009


Sam Hu wrote:
> I looked up in D2  in std.stdio,std.file,std.cstream and std.stream and try to find a very simple method which can read from a file once a  value other than once an entire row.I just can not find it maybe this idea is wrong.Say how to simply read & write key/value pairs to and from a file like this format:
> 
> //file "data.dat"
> Tommy M 22
> 
> where the keys are name,gender and age while the values are Tommy,M ,22.
> 
> I found there is methods that can read from a file once an entire row.But is there a simple method which can read once a value?In C++ one can do like this:
> 
> #include <iosteam>
> #include <fstream>
> using namespace std;
> ifstream inData;
> inData.open("data.dat");
> inData>>name;
> inData>>gender;
> inData>>age;
> 
> cout<<"Info:"<<endl
>        <<"Name:"<<name<<endl
>        <<"Gender:"<<gender<<endl
>        <<"Age:"<<age<<endl;
> 
> 
> 

IN D2 you can use std.file and slurp (cool name, beside)
slurp reads an entire file into an array.

// Load file; each line is an string followed by whitespace , another 
//string followed by whitespace and a  int.

auto a = slurp!(string, string, int)("data.dat", "%s %s %s");

Now you can go on an play a bit with the new range stuff. (std.range)

Enjoy, Björn


More information about the Digitalmars-d-learn mailing list