2011-05-27 12 views
8

Yakut Bu basit örnekte csvRuby CSV'de, bir dosyaya "" yerine boş "nasıl yazılır?

header %w[first second third] 

data = ["column one",,"column three"] 

CSV.open("myfile.csv","w") do |csv| 
    csv << header 
    csv << data 
end 

1.9 sürümü, veri dizisinde boş orta ,, hataya neden oluyor ama boş alıntı kullanılırsa, "", o zaman hiç hata ve CSV dosyası oluşturulur. Ancak CSV boş alıntılanan Segment yok dosyasını yapmak istiyoruz.

Özellikle ben tırnaklar olmadan bir CSV dosyasının boş bölümleri oluşturmak nasıl? Veriler boş değişkenler olabilir ama yine de virgül yazmalı.

cevap

23

first,second,third 
column one,,column three 
+0

olağanüstü CSV, teşekkür ederim o üretir Kullanım

data = ["column one",nil,"column three"] 

. – sf2k

+0

izin verildikten sonra onay işareti ile Boş 'alanlar' olduğu sınırlayıcılarla bir dizide bölünmüş yöntemi kullandığım bir durum vardı, örneğin sekme ile ayrılmış bir dize '' name \ tage \ t \ t \ tbirthday \ n "ve bu boş alanlar için ortaya çıkan dizi çift tırnak (" ") oldu. İşte dizide nils oluşturmak için yaptım: 'csv << string.split (/ \ t /). Map {| f | f == ""? nil: f} –