Skip to content

print.raw - but convert ASCII?

3 messages · Duncan Murdoch, Matt Shotwell

#
Does anyone know if there is a simple way to print raw vectors, such
that ASCII characters are printed for bytes in the ASCII range, and
their hex representation otherwise? rawToChar doesn't work when we have
something like c(0x00, 0x00, 0x44, 0x00).

-Matt
#
On 11-04-18 9:51 PM, Matt Shotwell wrote:
Do you really need hex?  rawToChar(x, multiple=TRUE) comes close, but 
displays using octal or symbolic escapes, e.g.

   [1] ""     "\001" "\002" "\003" "\004" "\005" "\006" "\a"   "\b" 
"\t"   "\n"
  [12] "\v"   "\f"   "\r"   "\016" "\017" "\020" "\021" "\022" "\023" 
"\024" "\025"
  [23] "\026" "\027" "\030" "\031" "\032" "\033" "\034" "\035" "\036" 
"\037" " "
  [34] "!"    "\""   "#"    "$"    "%"    "&"    "'"    "("    ")" 
"*"    "+"

If you really do want hex, then you'll need something like

ifelse( x < 32 | x >= 127, as.character(x), rawToChar(x, multiple=TRUE))

Duncan Murdoch
#
On Tue, 2011-04-19 at 03:14 -0400, Duncan Murdoch wrote:
No, but I've almost learned to count efficiently in hex. :)
That does it. Thanks. -Matt