2011-05-27 12 views
8

रूबी 1.9 संस्करण csvरूबी सीएसवी में, एक फाइल को बदले में, "", एक रिक्त कैसे लिखना है?

header %w[first second third] 

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

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

इस सरल उदाहरण में, खाली मध्य में, डेटा सरणी में त्रुटि होती है लेकिन यदि खाली उद्धरण का उपयोग किया जाता है, तो "कोई त्रुटि नहीं है और CSV फ़ाइल बनाई गई है। हालांकि मैं सीएसवी फ़ाइल को खाली उद्धृत सीमेंट नहीं करना चाहता हूं।

विशेष रूप से मैं उद्धरण के बिना एक CSV फ़ाइल के खाली खंड कैसे उत्पन्न करूं? डेटा खाली चर हो सकता है लेकिन इसे अभी भी अल्पविराम लिखना चाहिए।

उत्तर

23

उपयोग

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

जो उत्पन्न करता है कि सीएसवी

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

बकाया, धन्यवाद। सही का निशान के साथ एक बार इसकी अनुमति है – sf2k

+0

मैं एक स्थिति है जहाँ मैं सीमांकक जहां खाली 'फ़ील्ड' वहाँ थे के साथ एक स्ट्रिंग पर विभाजन विधि का इस्तेमाल किया था, उदाहरण के लिए एक टैब सीमांकित स्ट्रिंग '" होगा नाम \ tage \ t \ t \ tbirthday \ N "' और उन रिक्त फ़ील्ड के परिणामस्वरूप सरणी डबल कोट्स ("") बन गईं। सरणी में नाइल्स उत्पन्न करने के लिए मैंने यहां किया है: 'csv << string.split (/ \ t /)। मानचित्र {| f | एफ == ""? शून्य: एफ} ' –