print.raw - but convert ASCII?
On 11-04-18 9:51 PM, Matt Shotwell wrote:
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).
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