From simon.urbanek at r-project.org  Tue Oct 28 23:09:51 2008
From: simon.urbanek at r-project.org (Simon Urbanek)
Date: Tue, 28 Oct 2008 18:09:51 -0400
Subject: [Rd] writting null (\000 or ^@) to an external text file
	without the new warning
In-Reply-To: <B37C0A15B8FB3C468B5BC7EBC7DA14CC6159B5EB06@LP-EXMBVS10.CO.IHC.COM>
References: <B37C0A15B8FB3C468B5BC7EBC7DA14CC6159B5E981@LP-EXMBVS10.CO.IHC.COM>
	<B8AB976F-211D-49FD-876E-A41E95CE8109@r-project.org>
	<B37C0A15B8FB3C468B5BC7EBC7DA14CC6159B5EB06@LP-EXMBVS10.CO.IHC.COM>
Message-ID: <D783C9DC-3B37-4AEC-B898-869896A6B330@r-project.org>


On Oct 28, 2008, at 17:32 , Greg Snow wrote:

> Thanks, I had assumed that writeChar("",con) would write 0 bytes to  
> the file and had seen the other construct somewhere else.  A quick  
> test of writeChar("",con) does have the ^@ (when viewed in emacs) in  
> the correct place, and there were no warnings, so I will change to  
> that.
>

Note that writeChar writes the string *and* EOS. writeChar("", con)  
writes nothing for the string so what you get is just the EOS which is  
one 0x00 byte. That gives you your \000. You previous construct was  
simply a noop because your output string was always irrelevant (just  
try nchar(rawToChar(as.raw(0))).

Cheers,
S


> --
> Gregory (Greg) L. Snow Ph.D.
> Statistical Data Center
> Intermountain Healthcare
> greg.snow at imail.org
> 801.408.8111
>
>
>> -----Original Message-----
>> From: Simon Urbanek [mailto:simon.urbanek at r-project.org]
>> Sent: Tuesday, October 28, 2008 3:20 PM
>> To: Greg Snow
>> Cc: R-devel at r-project.org
>> Subject: Re: [Rd] writting null (\000 or ^@) to an external text file
>> without the new warning
>>
>>
>> On Oct 28, 2008, at 14:23 , Greg Snow wrote:
>>
>>> 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.
>>>
>>
>> Well, why don't you just use
>> writeChar("", con)
>> that's what you're actually calling anyway since rawToChar(as.raw(0))
>> is exactly "" as it gets truncated.
>>
>> Cheers,
>> S
>>
>>
>>
>>> 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?
>>>
>>> Thanks,
>>>
>>> --
>>> Gregory (Greg) L. Snow Ph.D.
>>> Statistical Data Center
>>> Intermountain Healthcare
>>> greg.snow at imail.org
>>> 801.408.8111
>>>
>>> ______________________________________________
>>> R-devel at r-project.org mailing list
>>> https://stat.ethz.ch/mailman/listinfo/r-devel
>>>
>>>
>
>



[Rd] writting null (\000 or ^@) to an external text file without the new warning
Simon Urbanek