ファイルをイテレータ処理
スポンサーリンク
スポンサーリンク
ライフスタイル関連のコンテンツ
お金 | 仕事 | 勉強 | プライベート | 健康 | 心
プログラミング関連のコンテンツ
C言語/C++入門 | Ruby入門 | Python入門 | プログラミング全般
お金 | 仕事 | 勉強 | プライベート | 健康 | 心
プログラミング関連のコンテンツ
C言語/C++入門 | Ruby入門 | Python入門 | プログラミング全般
ファイルをオープンして、1行ずつ読み込んでいく処理もイテレータを用いると簡単です。
以下のデータが記述されたファイルを処理します。
スポンサーリンク
lang.dat
Ruby, Java Perl, PHP, JavaScript COBOL, C++, Python
スクリプトを以下のように書いて実行します。
fn = "lang.dat" puts "--- open ~ close" file = File.open(fn) file.each{|line| puts line } file.close # closeを忘れないようにする puts "--- open ~ no close" open(fn){|f| # ファイルをブロックに渡し、一度だけブロックを起動。ここをブロックと呼ぶ。 f.each{|line| # 1行ずつイテレータ処理。ここをイテレータと呼ぶ。 puts line } } # ブロックを抜ける直前に自動的にcloseしてくれるので、closeを明示する必要がない。 puts "--- open ~ while" open(fn){|f| while line = f.gets # while文でも処理可能 puts line end }
実行結果。
--- open ~ close Ruby, Java Perl, PHP, JavaScript COBOL, C++, Python --- open ~ no close Ruby, Java Perl, PHP, JavaScript COBOL, C++, Python --- open ~ while Ruby, Java Perl, PHP, JavaScript COBOL, C++, Python
スポンサーリンク
>> 次の記事 : grepとsort_byメソッド・Enumerableモジュール
<< 前の記事 : イテレータとは
- - 関連記事 -
- 引数のあるイテレータ
- イテレータ定義で複数の引数をブロックに渡す
- クラス内にイテレータ定義
- イテレータを定義する・まずは未定義のクラスの例
- grepとsort_byメソッド・Enumerableモジュール
- イテレータとは
- yield でイテレータを独自に定義
スポンサーリンク