"Ali Çehreli" <acehr...@yahoo.com> schrieb im Newsbeitrag news:lf2ude$1njf$1...@digitalmars.com... > On 03/03/2014 01:44 PM, Christof Schardt wrote:> I'm evaluating D and try > to write a binary io class. > > I got stuck with strings: > > > > void rw(ref string x) > > { > > if(_isWriting) > > { > > int size = x.length; > > _f.rawWrite((&size)[0..1]); > > _f.rawWrite(x); > > } > > else > > { > > int size; > > _f.rawRead((&size)[0..1]); > > > > ... what now? > > You need to have a buffer of 'size'. Not tested: > > auto s = new char[size]; > s = _f.rawRead(s); > x = s; > > However, the last line will not compile due to difference in mutability. > So will need to do something like this: > > import std.exception : assumeUnique; > > x = assumeUnique(s); > > > } > > } > > > > Writing is ok, but how do I read the bytes to the > > string x after having its size? > > Ali
Thanks, Ali, this works. BTW: will your excellent book be equipped with a TOC and an index? I find it hard to look for answers to questions like above in all the D docs I have (dpl.org, TDPL, your book)