From: Martin Duerst Date: 2008-01-23T14:59:44+09:00 Subject: [ruby-dev:33304] Re: Ruby1.9String  バイト列へのインデックス アクセス 桐生さん、こんにちは。 At 19:57 08/01/20, Hisanori Kiryu wrote: >> ちなみに、byte のではなく bytes の方が妥当だと思います。 >> >>>s = "abcde" >>>s.byte # "abcde"のバイト列オブジェクト >>>s.byte[3] # => 100 >> >> これは多分 s.byte[3].ord で我慢できるのではないかと自分では思いますが、 >> いかがでしょうか。 > >すみません。最初のメールが長すぎたので、 >論点がつかめなかったかもしれません。 > >私の言いたかったのは、”Substringを介しない” >Ruby1.8までのような、 >バイト列へのアクセスメソッドはないのかということです。 > >そういうものがないと、[ruby-dev:33186] などで述べたような >ビットマップ画像にぼかしをいれる画像処理操作などで、 >pixel数(数メガにもなる)の10倍の個数の一文字Stringが >生成されてしまう、というものでした。 >これは本当にHugeではないでしょうか? >このような操作もRuby1.8までは、オブジェクト生成数ゼロで >Fixnumのみを使って行えていたのです。 メールの読む順番がバラバラになりましたので、桐生さんの前のメール を読まずメールを書いてしまいました。 昔画像処理を大分やりましたので、問題は分かります。 代入は方が違うので、問題を解決できるが、取り出しの場合 は例えば string.get_byte とかはどうでしょうか。 余りかっこよくなくて、ルビらしくないですが、早くなるとは思います。 宜しくお願いします。 Martin. #-#-# Martin J. Du"rst, Assoc. Professor, Aoyama Gakuin University #-#-# http://www.sw.it.aoyama.ac.jp mailto:duerst@it.aoyama.ac.jp