池澤といいます。 小波さんから詳細解説あったので、いまさらですが・・・書いてたので > ちなみに、このやり方でループを作成するとdatファイルが奇数行しかないと > エラーが出るという考え方でよろしいでしょうか? > (datファイルを奇数行にして実行してみると確かにエラーが出ました。その原因は > whileに与えた line=f.gets が偽になるからですか?) ファイルが奇数行のときのふるまいを理解するのに、irbでやってみました。 (Windowsです) 既にるびきちさんからxmpfilterというツールが紹介されていますが、小波さん も言われているirbも「確かめツール」としては良いかなと思います。 #--以下 cmd.exe実行画面---------------------------------------------- >type q.dat 1 2 3 >irb --simple-prompt >> f = open("q.dat") => #<File:q.dat> >> while line = f.gets >> p line >> end "1\n" "2\n" "3\n" => nil >> p f.gets nil => nil >> nil.chomp NoMethodError: private method `chomp' called for nil:NilClass from (irb):6 >> f.close => nil >> exit > #------------------------------------------------ ・q.datの全ての行を読み込んだ後getsすると、「もうみんな読んじゃって、読 み込むべき行なんてありませーん」とnilが返る。 ・nil.chompしようとするから「nilにはchompなんていうメソッドはありませー ん」というNoMethodErrorが返る みたいですね。・・・多分 irbでやってみるとよく分かることが多くて、勉強になります。 確信持てないとき 何はともあれ irb とかです。 Ruby独学は特殊なことではなく、聞いてみると「それ普通じゃね?」みたいです よ。私も独学ですが、独学とはいえruby-listもあるし、勉強会とかでいろいろ 教えてもらえたりします。お互いがんばりましょう。 あっ、るびきちさんの『Ruby逆引きハンドブック』も辞書のように使わせてもらっ てますです。