[#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:31856] Re: jleft, jright を作ってみました

From: Koji Arai <JCA02266@...>
Date: 2001-10-13 06:12:42 UTC
List: ruby-list #31856
新井です。

In message "[ruby-list:31841] jleft, jright を作ってみました"
  on 11 Oct 2001 15:54:39 +0900,
  Shimada Yoshiro <yoshimada@yahoo.co.jp> wrote:
> 島田と申します
> 
> 先ほど変なタイトルのメールを送ってしまい、申し訳ありませんで
> した。改めて同じ内容のメールを送ります。
> 
> SJISで、全角と半角が混じっている文字列の左からnバイトまたは
> 右からnバイトを切り出すメソッドを作って見ました。
> 
> みそは切り出す文字の境界に全角文字がきて1バイトめと2バイト目
> が泣き別れになるのを避けることです。そのような状況では切り出
> す長さをn-1バイトにして処理しています。

[ruby-list:6005] を参考に私も作ってみました。jcode.rb に依存
しないのがミソです。
# jleft, jright はおまけで jfold がメイン

でも、jfold って既に誰かが作ってそうですよね。最上の実装の物
を FAQ に載せるか、jcode.rb に入れたいです。


# refered to [ruby-list:6005]
class String
  def _jfold(len, over_boundary = false)
    return ["", self.dup] if len <= 0

    left, right = self.unpack("a#{len} a*")
    if /.$/ !~ left
      if over_boundary
	left << right[0,1]
	right[0,1] = ''
      else
	right[0,0] = left[-1,1]
	left[-1,1] = ''
      end
    end
    [left, right]
  end

  def jfold(len, over_boundary = false)
    return _jfold(len, over_boundary) if not block_given?

    right = self
    while true
      left, right = right._jfold(len, over_boundary)
      yield(left,right)
      break if right.empty?
    end
  end

  def jleft(len)
    _jfold(len)[0]
  end

  def jright(len)
    _jfold(self.size - len, true)[1]
  end
end

if $0 == __FILE__
  s = "あいうえおabcあいうえお"

  (-2 .. s.size+2).each {|i|
    p [i, s.jleft(i), s.jright(s.size - i)]
  }

  s.jfold(5) {|t,|
    p t
  }
  s.jfold(5,true) {|t,|
    p t
  }
end

[-2, "", "あいうえおabcあいうえお"]
[-1, "", "あいうえおabcあいうえお"]
[0, "", "あいうえおabcあいうえお"]
[1, "", "いうえおabcあいうえお"]
[2, "あ", "いうえおabcあいうえお"]
[3, "あ", "うえおabcあいうえお"]
[4, "あい", "うえおabcあいうえお"]
[5, "あい", "えおabcあいうえお"]
[6, "あいう", "えおabcあいうえお"]
[7, "あいう", "おabcあいうえお"]
[8, "あいうえ", "おabcあいうえお"]
[9, "あいうえ", "abcあいうえお"]
[10, "あいうえお", "abcあいうえお"]
[11, "あいうえおa", "bcあいうえお"]
[12, "あいうえおab", "cあいうえお"]
[13, "あいうえおabc", "あいうえお"]
[14, "あいうえおabc", "いうえお"]
[15, "あいうえおabcあ", "いうえお"]
[16, "あいうえおabcあ", "うえお"]
[17, "あいうえおabcあい", "うえお"]
[18, "あいうえおabcあい", "えお"]
[19, "あいうえおabcあいう", "えお"]
[20, "あいうえおabcあいう", "お"]
[21, "あいうえおabcあいうえ", "お"]
[22, "あいうえおabcあいうえ", ""]
[23, "あいうえおabcあいうえお", ""]
[24, "あいうえおabcあいうえお", ""]
[25, "あいうえおabcあいうえお", ""]
"あい"
"うえ"
"おabc"
"あい"
"うえ"
"お"
"あいう"
"えおa"
"bcあい"
"うえお"

In This Thread