From: Shin-ichiro Hara Date: 1996-10-29T15:42:22+09:00 Subject: [ruby-list:921] Re: [REQ]Get Strings!<2> GETR 原です。 > まつもと ゆきひろです. > |(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.)