2008/10/28 Greg Snow <[EMAIL PROTECTED]>: > I have some functions that write an external text file for postprocessing by > another program. Some instructions to the other program need to be indicated > by null values (\000 or ^@). The function currently uses code like: > > writeChar(rawToChar(as.raw(0)), con) > > where con is a connection to the file. Previous to version 2.8.0 this worked > fine. With 2.8.0 it still works, but I get a warning message about > "truncating string with embedded null: '\0'" every time. This is documented > and not a bug, but I still find it annoying. > > One thing I could do is to turn off all warnings before doing this, but then > if there is some other warning generated, then I will miss the other > warning(s). > > Is there a better way to write the null to the text file? Or is there a way > to suppress just this warning without suppressing any other warnings that may > occur?
The warning happens when you construct the string, so somehow you have to avoid making the string. How about using writeBin with a connection opened in binary mode: > con=file("test2.raw","wb") > writeBin(as.raw(1),con,size=1) > writeBin(as.raw(0),con,size=1) > writeBin(as.raw(0),con,size=1) > writeBin(as.raw(7),con,size=1) > close(con) > Save workspace image? [y/n/c]: n now lets dump it: [EMAIL PROTECTED]:~$ od -x test2.raw 0000000 0001 0700 0000004 Which I think is correct, maybe some fiddling with endianness is needed... Barry ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel