プログラミング的なSomething

読者です 読者をやめる 読者になる 読者になる

プログラミング的なSomething

ITエンジニア(?)目線で生活・自転車・トレーニング話を綴ります

Rubyを使ってcsvファイルを処理する

Rubyを使ってファイル処理をしたい。と思ったので一連の流れを実装。
簡単なソースではありますが、個人的には配列の基本に立ち返れたので良い機会になりました。

やること

CSVファイルを取り込んで、降順にソートします。

実装

以下スクリプト。

class Address
 def initialize
  buf = Array.new #バッファするための配列を宣言
  open("address.csv","r") do |file|
    file.each_line do |s|
    buf << s.chomp #改行文字\nを取り除きつつbufに値を格納
    @s = buf #できあがった配列をインスタンス変数に格納
    end
  end
end

 def sort #降順に並べ替える
    @s.sort! do |one,another|
    one = one.split(',')
    another = another.split(',')
    one[2] <=> another[2]
    end
 end
end

address = Address.new
puts address.sort

取り込んだaddress.csvは以下の通り。

01,he,133
02,yo,155
03,ho,143

実装結果は以下の通り。

01,he,133
03,ho,143
02,yo,155

まとめ

ファイルの内容を1行づつ行った場合、bufのような配列に格納しないとあきまへんし、s.chompのように改行文字を除外しておくことが肝要です(恐ろしく基本的ですが)。
Javaを社員研修で触れて数年、まだまだプログラミングの基本を学ばないと。

広告を非表示にする