Daniel Martin
9/6/2006 2:38:00 PM
"Srdjan Marinovic" <srdjan.marinovic@gmail.com> writes:
> How do I construct a string out of hex values?
> In other words I want to give exact hex value for each byte in the
> string. So I would have soemthing like
>
> 0x2a, 0x7e, 0x0a, 0x7e
>
> If I go through Fixnum I get my string to contain numbers 48, 115, 10,
> 115 but I do not want that but rather a string of ASCII(48),
> ACII(115),...
irb(main):001:0> a = [ 0x2a, 0x7e, 0x0a, 0x7e ]
=> [42, 126, 10, 126]
irb(main):002:0> a.map{|x|x.chr}.join
=> "*~\n~"
If all you have is the string representation of the hex values (say,
if you're reading hex values from a file), you have to do just a tiny
bit more to first convert the hex values into integers:
irb(main):001:0> a = %w[ 2a 7e 0a 7e ]
=> ["2a", "7e", "0a", "7e"]
irb(main):002:0> a.map{|x|x.hex.chr}.join
=> "*~\n~"
But only just barely more.
--
s=%q( Daniel Martin -- martin@snowplow.org
puts "s=%q(#{s})",s.map{|i|i}[1] )
puts "s=%q(#{s})",s.map{|i|i}[1]