Skip to content

WriteBin problem

4 messages · Harutyun Khachatryan, Duncan Murdoch, Carl Witthoft +1 more

#
Dear R project officials,

I have found that in R 3.0.1 version "writeBin" function of "base" package might not work correctly. For command writeBin("100",raw()) it answers "31 30 30 00" the last double 0 is differs from http://www.branah.com/ascii-converter there ascii codes are "31 30 30". So is it normal having double 0-s after ascii codes and what it means? 

Thank you in advance.
Regards, Harutyun Khachatryan.
#
On 06/11/2013 3:35 AM, Harutyun Khachatryan wrote:
From ?writeBin:

"|readBin| and |writeBin| read and write C-style zero-terminated 
character strings."

Duncan Murdoch
#
First of all,  use "readBin" to verify you get the desired data back.  
Second, that '00' is, I believe the <EOF> character you'll find at the end
of any file.


Harutyun Khachatryan wrote
--
View this message in context: http://r.789695.n4.nabble.com/WriteBin-problem-tp4679853p4679855.html
Sent from the R help mailing list archive at Nabble.com.
#
Sorry, Carl, but you missed the boat on both responses.

Using readBin to read what they wrote won't help the OP if they don't understand what they are writing.  Nor is byte 0 the EOF marker on any operating system I have ever used. (It does happen to be the string terminator for in-memory strings in the C language, and it is actually not unusual to find NUL-termination used in strings that are stored in binary files. The OP does seem to be confused about the difference between binary files and text files, both of which can be affected by the disk format, CPU type, and operating system that are in use.)

I recommend that the OP use raw vectors (see ?raw) if they want to read and write binary data. I also recommend using the hexView package to manipulate the contents of raw vectors.
---------------------------------------------------------------------------
Jeff Newmiller                        The     .....       .....  Go Live...
DCN:<jdnewmil at dcn.davis.ca.us>        Basics: ##.#.       ##.#.  Live Go...
                                      Live:   OO#.. Dead: OO#..  Playing
Research Engineer (Solar/Batteries            O.O#.       #.O#.  with
/Software/Embedded Controllers)               .OO#.       .OO#.  rocks...1k
--------------------------------------------------------------------------- 
Sent from my phone. Please excuse my brevity.
Carl Witthoft <carl at witthoft.com> wrote: