[#31787] MIME decoding — Tietew <tietew@...>

Tietew です。

24 messages 2001/10/08

[#31866] 先祖がえり — "T.Shirakawa" <niegh@...>

はじめまして つい最近、MLに登録した白川です。

20 messages 2001/10/14
[#31867] Re: 先祖がえり — Koji Arai <JCA02266@...> 2001/10/14

新井です。

[#31889] Ruby Conference — Minero Aoki <aamine@...>

あおきです。

31 messages 2001/10/16
[#31905] Re: Ruby Conference — matz@... (Yukihiro Matsumoto) 2001/10/17

まつもと ゆきひろです

[#31923] Re: Ruby Conference — TAKAHASHI Masayoshi <maki@...> 2001/10/17

高橋征義です。

[#31932] しぶらぐ — "KANEMITSU Masao" <masao-k@...> 2001/10/18

http://www.ne.jp/asahi/masao-k/home/newpage1.htm

[#31906] 数値の配列の一部を文字列にして、多重代入したい — みかみまさと <kofu@...>

こんにちは。みかみにございます。

9 messages 2001/10/17

[#32016] Re: コメント削除スクリプト — "Tatsuaki Nagai" <Tatsuaki_Nagai@...>

こんにちは。永井です。

15 messages 2001/10/24
[#32018] Re: コメント削除スクリプト — TASHIRO Katsuya <tashiro_katsuya@...> 2001/10/24

田代と申します.

[#32123] dRuby の DRbUndumped#_dump は? — FUJIMOTO Hisakuni <hisa@...>

こんにちは、藤本です。

21 messages 2001/10/30
[#32124] Re: dRuby の DRbUndumped#_dump は? — m_seki@... 2001/10/30

[#32126] Re: dRuby の DRbUndumped#_dump は? — shudo@... 2001/10/31

咳さん wrote:

[#32145] Test::Unit — MUTOH@...

むとうです。

20 messages 2001/10/31

[ruby-list:31975] [ お題 ] 文字列の 16 進ダンプ

From: Koji Arai <JCA02266@...>
Date: 2001-10-20 18:32:54 UTC
List: ruby-list #31975
新井です。

以下のような16進ダンプの方法を考えてました。

 00000000  61626364 65666768 696a6b6c 6d6e6f70  abcdefghijklmnop
 00000010  61626364 65666768 696a6b6c 6d6e6f70  abcdefghijklmnop

最初、必要にせまられて作ったのですがせっかくなので FAQ にで
も入れようかと思いました。で、より良いものがないかみなさんの
お知恵を拝借しようと思った次第です。

要件としては、短く、エレガントに最低限の機能を持ったものです。
添付のものは自分ではなかなか満足の行くものができたと思ってい
るのですが、

・同じ行の出力は省略したい
・日本語出力に対応したい

というのがあります。これを入れるとコードがぐちゃぐちゃになっ
てしまうので、エレガントさ(というかわかりやすさ)がなくなるよ
うならこのレベルで載せちゃおうかなとも思ってます。

なお、16進ダンプのための既存のライブラリの紹介も歓迎します。
FAQ に載せますので。


def hexdump(str)
  offset = 0
  result = []

  while raw = str.slice(offset, 16) and raw.length > 0
    # address field
    line = sprintf("%08x  ", offset)

    # data field
    for v in raw.unpack('N* a*')
      if v.kind_of? Integer
	line << sprintf("%08x ", v)
      else
	v.each_byte {|c| line << sprintf("%02x", c) }
      end
    end

    # text field
    line << ' ' * (47 - line.length)
    line << raw.tr("\000-\037\177-\377", ".")

    result << line
    offset += 16
  end
  result
end

puts "--", hexdump ""
puts "--", hexdump "a"
puts "--", hexdump "abcd"
puts "--", hexdump "abcdefghijklmnop"
puts "--", hexdump "abcdefghijklmnop" "q"
puts "--", hexdump "abcdefghijklmnop" "qrstu"
puts "--", hexdump "abcdefghijklmnop" "qrstu" "v"
puts "--", hexdump "abcdefghijklmnop" * 4
puts "--", hexdump "abcdefghijklmnoあ" * 4


結果

--
--
00000000  61                                   a
--
00000000  61626364                             abcd
--
00000000  61626364 65666768 696a6b6c 6d6e6f70  abcdefghijklmnop
--
00000000  61626364 65666768 696a6b6c 6d6e6f70  abcdefghijklmnop
00000010  71                                   q
--
00000000  61626364 65666768 696a6b6c 6d6e6f70  abcdefghijklmnop
00000010  71727374 75                          qrstu
--
00000000  61626364 65666768 696a6b6c 6d6e6f70  abcdefghijklmnop
00000010  71727374 7576                        qrstuv
--
00000000  61626364 65666768 696a6b6c 6d6e6f70  abcdefghijklmnop
00000010  61626364 65666768 696a6b6c 6d6e6f70  abcdefghijklmnop
00000020  61626364 65666768 696a6b6c 6d6e6f70  abcdefghijklmnop
00000030  61626364 65666768 696a6b6c 6d6e6f70  abcdefghijklmnop
--
00000000  61626364 65666768 696a6b6c 6d6e6fa4  abcdefghijklmno.
00000010  a2616263 64656667 68696a6b 6c6d6e6f  .abcdefghijklmno
00000020  a4a26162 63646566 6768696a 6b6c6d6e  ..abcdefghijklmn
00000030  6fa4a261 62636465 66676869 6a6b6c6d  o..abcdefghijklm
00000040  6e6fa4a2                             no..

--
新井康司 (Koji Arai)

In This Thread

Prev Next