野田です。OZAWAさんありがとうございました

OZAWA -Crouton- Sakuro wrote:
> あとでsortするなら逆転させても意味ないかも。あるいは最初からpushではなく
> ushiftを使うとか。
> というか、data.reverse はdataを逆順にした新しいArrayを返すだけで、自分は変
> 化しません。自分自身を逆順にするには data.reverse! を使います。

まだまだじっくり本を勉強していないのに興味ばかりがつのって、色々なスクリプトを書きたく
なってしまいます。知らないことだらけで申し訳ありません。

> yieldは、yieldを使っているメソッドの引数に付けられた { ... } ブロックを評価(実
> 行)するものです。
>
> 上では sort_by { |line| line.split(/#{reg}/s)[field] } という形で呼び出し
> ていますから、
>
> >    def sort_by
> >      collect { |e| [ yield(e), e ] }.sort.collect{ |e| e[1] }
> >    end
>
> は、
>       collect { |e| [ e.split(/#{reg}/s)[field], e ] }.sort.collect{ |e| e[1] }
> のような意味になります。
>
> sort_byを汎用的(いろいろな比較条件で使い回せる)にするために使いましたが、
> 実は、今回やることと直接の関係はないのでした _o_
>
> 一度かぎりなら、dataを読み込んだあと、
>
> data_with_given_field = data.collect { |line| [ line.split(#{reg}/s)[field], line ] }
> sorted = data_with_given_field.sort
> result =  sorted.collect { |e| e[1] }
> puts result
>

ありがとうございます。Rubyの解説書は何もわからないものにとっては
非常に難解です。もっともっとたくさんの入門書ができることを期待しておりま
す。そして日常業務の中でWord,Excel,Accessでは困難なことがいともたやすく
できてしまうという素晴らしさをアピールすべきだと思います。
パソコンの性能がよくなっている割には、ある面ではますます業務が遅くなって
いるような気もします。たとえば文章中にある数字を一割引にするのに、一枚一
枚書類を開いては、訂正している人もいます。
ヴィジュアルな環境を求め過ぎて、ますますのろまなパソコンにしているようで
す。