[ruby-list:47256] 変則的なCSVデータの処理

From: "Hideo Konami" <konami@...>
Date: 2010-07-22 05:34:35 UTC
List: ruby-list #47256
小波です.

次のような行をもつ CSV ファイルがあり,split や scan による切り分けが
うまくいかずにはまっています.

"Bach, JC","協奏交響曲","C",,,,,"S",,"S",,"S+2","S",2,2,,2,,,,,,,,,,
"Beethoven","Pf. 協奏曲第1番","C",15,"S",,,,,,,1,2,2,2,,2,2,,,,"Y",,,,,"18 11 9"

最初のカラム(人名)は '"' と '"' の間に ',' が存在していることがある
ので, 単純に split(',')  で切ると当然人名がぶった切れます.また数字
だけのレコードはカラムに '"' で挟まずに入っています.

たとえば1行目なら次のように nil も入れて配列化したいのですが,うまい
やり方があったら教えていただけないでしょうか.

["Bach, JC","協奏交響曲","C",nil,nil,nil,nil,"S",nil,"S+2","S",2,(略) ]










In This Thread

Prev Next