wrote:
> On Feb 26, 8:46 am, Dave M <dmil...@tecolote.net> wrote:
>> Hello all
>>
>> I would like to convert integers to strings in a way that I haven't come
>> across in the Ruby functions I have looked at. I would like the string
>> to be exactly what the integer would be if I read it in from a binary file.
>>
>> In other words, the integer 0x61626364 would be the string "abcd" after
>> the conversion. I can write code to do it, but I think there is
>> probably a better way than the approach I have come up with.
>>
>> This works but seems very brute force to me:
>>
>> # assumes 32 bit numbers.
>> class Bignum
>> def to_ls
>> i = self
>> s = ""
>> 4.times { s.concat(i & 0xff); i >>= 8}
>> return s.reverse
>> end
>> end
>>
>> puts 0x61626364.to_ls
>> abcd
>>
>> Also, it seems that I need this for both Bignum and Fixnum to cover the
>> entire 32 bit number range.
>>
>> Thanks
>>
>> Dave M
>
> Dave --
>
> I'm afraid that you may have selected the incorrect language for the
> task at hand. Your question implies that you are doing some complex
> parsing or homogenization, and Ruby, while a nice scripting language
> for small tasks, is simply not a good choice for that application. If
> you want to do simple web development or a little scraping, Ruby is
> good for that, but that's about the extent of what it can really
> handle well.
>
> I suggest you look at Perl or TCL for a serious scripting language,
> Java for a robust programming language, and Visual Basic if you want
> an ultra-fast development environment. These are tools that can
> handle the task you describe in a sensible way.
>
> I am not saying that you should give up Ruby. Ruby is great for
> learning some of the object-oriented concepts that while interesting,
> may not be practical for some tasks in the real world.
>
> Hope that helps
>
> Cheers
>
> G
Please reconsider your assessment of ruby, G.
[0x61626364].pack("N")
This returns the string "abcd" and does so elegantly and efficiently.
In my experience and that of many others on this mailing list, ruby can
be used for a variety of complex tasks, and not just web apps. Also,
like perl, it makes simple tasks simple.
--
vjoel : Joel VanderWerf : path berkeley edu : 510 665 3407