Ruby言語 ファイル 書き出し
# データを書き換えるクラス
class DataReplacement
attr_writer :inputfile, :outputfile
# データを書き換える処理
def replace
output = File.read(@inputfile).split("\n").map do |content|
name, sex_code, tel = content.split(',')
last_name, first_name = name.split
[last_name, first_name, sex(sex_code), separated_tel(tel)].join(',')
end.join("\n")
File.write(@outputfile, output)
end
private
# 性別コードを文字列に変換
def sex(code)
code.to_i == 1 ? '男性' : '女性'
end
# 携帯電話番号をハイフン区切りに変換
def separated_tel(number)
number.match(/(\d{3})(\d{4})(\d{4})/)
"#{$1}-#{$2}-#{$3}"
end
end
replacement = DataReplacement.new
# 入力ファイルの指定
replacement.inputfile = ARGV[0]
# 出力ファイルの指定
replacement.outputfile = ARGV[1]
# データ書き換え
replacement.replace
というソースコードで、コマンドプロンプトで実行した結果、
コマンドには表示されず、excelの拡張子がcsvのファイルに書き出されるみたいなのですが、これも、文字化けしていて、同様の修正を施したものが、
山田,太郎,男性,090-0000-0000
山田,花子,女性,090-1111-1111
鈴木,次郎,男性,090-2222-2222
鈴木,桃子,女性,090-3333-3333
田中,三郎,男性,090-4444-4444
田中,梅子,女性,090-5555-5555
高橋,四郎,男性,090-6666-6666
高橋,桜子,女性,090-7777-7777
佐藤,五郎,男性,090-8888-8888
佐藤,李子,女性,090-9999-9999
がexcelの拡張子がcsvファイルに書き出されるみたいなのですが。教えて頂けると幸いです。