I'm thinking more about handling binary files. With the C version I would write a int for how many letters in the string, then put in the the string along side ([0005][house]). That way I can have any character at all (though I just thinking of char's).

Actually, I've just looked the output file and it's a text file. So in that case I would use read line to have spaces in strings, though what if I wanted to have new line character(s) in the one string. I still want to work with binary files.

On 30-Jun-11 2:23 AM, Ali Çehreli wrote:
On Wed, 29 Jun 2011 19:55:38 +1200, Joel Christensen wrote:

With the char[], I can't use spaces in it the way I've got it here,
(like if I tried using a phrase):

There has been a thread very recently about reading strings. Look for the
thread "readf with strings" (dated 22-Jun-2011 in my reader). Or, if it
works here:

http://www.digitalmars.com/webnews/newsgroups.php?
art_group=digitalmars.D.learn&article_id=27762

Reading the entire line:

     string s = chomp(readln());

Kai Meyer suggested parsing the string directly:

      string[] buffer;
      int a;
      float b;
      string c;
      buffer = chomp(readln()).split(" ");
      a = to!(int)(buffer[0]);
      b = to!(float)(buffer[1]);
      c = buffer[2..$].join(" ");
      writef("Read in: '%d' '%f' '%s'\n", a, b, c);


void saveLevel( string fileName ) {
        int ver = 1;
        auto house = "two".dup;
        double rnum = 3.0;
        
        {
                auto fout = File( fileName, "wb"); // open for binary
writing scope(
                exit )
                        fout.close;

You are not supposed to need to close the File object yourself. Being a
struct, its destructor should be called automatically.

Ali

Reply via email to