CSVで余計な空行が入る
Windows XPでruby 1.9を使用しております。
(ruby 1.9.3p286 (2012-10-12 revision 37165) [i386-mswin32_100])
CSVライブラリの勉強をしていて見つけたのですが、下のプログラムで改行を含むデータを持つCSVを読み込み出力すると、その改行部分に余分な空行が追加されてしまいます。
出力されたoutput.csvをバイナリエディタで確認すると改行を含むデータの改行部分が
元は0x0D,0x0Aであったものが出力されたファイルでは0x0D,0x0D,0x0Aと
0x0Dが1個余分にくっついているのが原因のようです。
この現象を回避する方法がありましたら教えてください。
よろしくお願いします。
-----test.rb
# coding: Windows-31J
require 'CSV'
CSV.open('output.csv','w') do |csv|
CSV.foreach('input.csv') do |row|
csv << row
end
end
-----
-----input.csv
10,11,12
20,"2
1",22
30,31,32
-----
-----出力output.csv
10,11,12
20,"2
<- この空行が追加されてしまいます。
1",22
30,31,32
-----
お礼
toCSVメソッドで作るようにしました!確かにスマートです!! 隠蔽されるよう、インターフェースを使用するようにします! 大変助かりました!ありがとうございました!!