Capnproto D language Print all data in a file -


i downloaded capnproto dlanguage , started tinkering sample-addressbook.. problem is, everytime add person addressbook, still prints 1 of data in file, instead of whole file..

void writeaddressbook() {     messagebuilder message = new messagebuilder();     auto addressbook = message.initroot!addressbook;     auto people = addressbook.initpeople(1);      auto person = people[0];     person.id = 123;     person.setname("tomas");     person.email = "tomas@example.com";      auto personphones = person.initphones(1);     personphones[0].number = "0917xxxxxxx";     personphones[0].type = person.phonenumber.type.mobile;     person.employment.school = "school of thoughts";     file f = file("1.dat","a+b");     serializepacked.writetounbuffered(new filedescriptor(f), message); } 

if call writeaddressbook() 4 times, have 4 people in addressbook same name, problem is, everytime print of data, prints first one..

void printaddressbook() {     file f = file("1.dat","r");     auto message = serializepacked.readfromunbuffered(new filedescriptor(f));      auto addressbook = message.getroot!addressbook;      foreach(person; addressbook.people)     {         writefln("%s: %s", person.name, person.email);          foreach(phone; person.phones)         {             string typename = "unknown";             switch(phone.type) with(person.phonenumber.type)             {                 case mobile:                     typename = "mobile";                     break;                 case home:                     typename = "home";                     break;                 case work:                     typename = "work";                     break;                 default:                     break;             }             writefln("  %s phone: %s", typename, phone.number);         }          auto employment = person.employment;         switch(employment.which()) with(person.employment.which)         {             case unemployed:                 writefln("  unemployed");                 break;             case employer:                 writefln("  employer: %s", employment.employer);                 break;             case school:                 writefln("  student at: %s", employment.school);                 break;             case selfemployed:                 writefln("  self-employed");                 break;             default:                 break;         }     } } 


Comments

Popular posts from this blog

ubuntu - PHP script to find files of certain extensions in a directory, returns populated array when run in browser, but empty array when run from terminal -

php - How can i create a user dashboard -

javascript - How to detect toggling of the fullscreen-toolbar in jQuery Mobile? -