[#954] Rational — keiju@... (Keiju ISHITSUKA)

けいじゅ@SHLジャパンです.

23 messages 1996/10/30
[#955] Re: Rational — matz@... (Yukihiro Matsumoto) 1996/10/30

まつもと ゆきひろです.

[#968] Re: Rational 1996/10/31

けいじゅ@SHLジャパンです.

[ruby-list:921] Re: [REQ]Get Strings!<2> GETR

From: Shin-ichiro Hara <sinara@...>
Date: 1996-10-29 06:42:22 UTC
List: ruby-list #921
原です。

> まつもと ゆきひろです.

> |(5)ungetc, ungets がほしい。
> 
> ungetcはあります.ドキュメントには落ちていますね.

あ、そうですか。それはありがたい。


> |(6)getr(RS) がほしい。
> 
> |何のことかというと、この RS というのは、レコード・セパレータでは
> |なくて、まあ、レコード・スタータというべきか、つまり、レコードを
> |その始まりの文字で区別したいのです。例えば、日経 MIX の各アーティ
> |クルは、"==========\n" で始まります。これは見た目からいって自然な
> |データの構造です。ところが "matz" という文字が出てくるアーティク
> |ルだけ抜き出すにはこの様に書かなければならないわけです。
> 
>  $/ = nil
>  readline.split("==========\n").each do
>    print if /matz/
>  end
> 
> じゃダメ? メモリ効率は悪そうだけど.

うーん、面白いと思ったんだけどなあ。(^^;


> |あるいは、gets(RS,0), gets(RS,1), gets(RS,2) としてそれぞれ、RS
> |を、セパレータ、ターミネータ、スタータとしてもいいかもしれない。
> 
> セパレータ,ターミネータ,スタータのそれぞれに対応するような
> 機能はrubyの組み込み機能として提供するにはちょっと抵抗があり
> ます.なんとなくですけど.ライブラリとして外部で提供すべきで
> はないでしょうか.

そうですね。これは ruby の組み込みにしては美しくない。


> |さらに RS に正規表現を使えれば言うことなしですが、もともと $/ に
> |も許してないですしね。
> 
>   splitなら対応していますよ.

考えてみたら、$/ に正規表現を許す訳にはいかないですね。最初の1行
切るためにファイルを全部読まなければいけなくなったりする。
それなら最初から一気読みして split するべきですね。


                           Shin-ichro Hara(Nagaoka Univ.of Tech.)

In This Thread

Prev Next