【#100DaysOfCode】Day12 「作りながら学ぶRuby入門」14,15章
まず取り組み方の振り返り
脳死写経にならないように気をつけたい
- 一読して考える
- そのコードを写経する必要があるかどうか即断
- 必要なものだけ写経
これで脳死を防ぎつつ、速度をあげたい
ということで、第1タームの振り返りも終わったし、今日のコード。
Day12
「作りながら学ぶRuby入門」14,15章 ファイルアクセス
ファイルデータを1行ずつ読み込む
# eachメソッドを使って、ファイルデータを1行ずつ読みこむ # 行番号用の変数 line_no = 0 # "sample4.txt"を読み込みモードでオープンする file = open("sample4.txt", "r") # ファイルの行を1行ずつ取り出して、line に読み込む file.each{ |line| line_no += 1 # 行数とlineを表示する print( "#{line_no}: #{line}" ) } puts "" #ファイルを閉じる file.close
openクラスを用いて処理をブロック化する
# Fileクラスのopenメソッドを使うと、処理の部分をブロックとして渡すことができる # "sample4.txt"を読み込みモードでオープンする open("sample4.txt", "r") { |file| # 処理はブロックとして渡す #ファイルの行を1行ずつ取り出して、lineに取り込む file.each { |line| print line } puts "" } # このブロックを抜けると、ファイルは自動的に閉じてもらえる
本日のまとめコード
deleteメソッドを使ってファイルを削除
# deleteメソッドを使って、ファイルを削除する # 配列データを作成 fruits = ["apple", "banana", "cherry", "fig", "grape"] # ファイル名を変数に格納する fname = "sample7.txt" # "sample7.txt"を書き込みモードで新規作成 ## openクラスを使ってかく open(fname, 'w') { |file| fruits.each { |fruit| file.puts fruit } } # "sample7.txt"を読み込みモードでオープンする open(fname, 'r') { |file| #ファイルの行を1行ずつ取り出して、lineに取り込む file.each { |line| print line } } # "sample7.txt"を削除する File.delete(fname) # .unlinkでも同じ # "sample7.txt"を読み込みモードでオープンする ## エラーが出るはず file = open(fname, 'r')
C言語とそっくりだったので、クッソ楽だった