助田です。
In message "[ruby-list:28696] Re: 日本語表示にこだわりが・・・"
    on 01/03/12, Inoue Shinobu <VEF00372 / nifty.ne.jp> writes:

> ところが、ここまでやってから (「Rubyプログラミング入門」p31)
> >RubyWinでgrep.rbを開いてから,「Ruby」->「Eval Buffer with ARGV」で出て
> >くるダイアログに「やまだ phone.txt」と入力して,[OK]ボタンを押
> したのですが
> 
> コンソールに
> C:\Ruby\tst01\grep.rb:5:in `each': Bad file descriptor(Errno::EBADF)
> 
>     from C:\Ruby\tst01\grep.rb:5:in `each'
>     from C:\Ruby\tst01\grep.rb:5
>     from C:\Ruby\tst01\grep.rb:0
> と出てきました・・・。

多分、最初に phone.txt ではないファイル名を指定したのでは
ないでしょうか? 一度でもファイル名を間違えると二度目に
正しいファイル名を入力して実行し直してもエラーになります。
RubyWinを再起動する以外にはありません。

調べてみましたが、今のところRubyWinだけでは解決できそうに
ありません。一度エラーになってしまったARGFの状態を初期化す
る手段が無さそうだからです。

> >   while gets
> >     print $_
> >   end
> > 
> > というスクリプトで、引数にREADME.sjisのファイルを指定すれば
> > ちゃんと日本語も表示されます。
> ここがよく理解できていません。そのせいもあるのかな・・・。

 「Ruby」->「Eval Buffer with ARGV」で出てくるダイアログで
 README.sjisを入力して実行すればコンソールには日本語を
 ちゃんと出力する

という意味でした。

> WIN98ということもあるなかな?
これは関係ないです。多分。

  助田 雅紀