ファイルをイテレータ処理
スポンサーリンク
スポンサーリンク
ライフスタイル関連のコンテンツ
お金 | 仕事 | 勉強 | プライベート | 健康 | 心
プログラミング関連のコンテンツ
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 でイテレータを独自に定義
スポンサーリンク