2013-12-15 5 views
5

में कॉलम नहीं ढूंढ सकता है तो मान लीजिए कि मेरे पास कॉलम जनसंख्या और लाभ युक्त शीर्षलेख वाला एक CSV फ़ाइल है, और मैं इसके साथ F # इंटरैक्टिव में काम करना चाहता हूं।सीएसवी प्रकार प्रदाता F # इंटरैक्टिव

#r "../packages/FSharp.Data.1.1.10/lib/net40/FSharp.Data.dll" 

open FSharp.Data 

// load csv header 
let cities = new CsvProvider<"cities.csv">() 

// how to reach data 
let firstRow = cities.Data |> Seq.head 
let firstPopulation = firstRow.Population 
let firstProfit = firstRow.Profit 

मैं इंटरैक्टिव एफ # से कोई त्रुटि मिलती है: मैं निम्नलिखित कोड है

त्रुटि FS0039: क्षेत्र, निर्माता या सदस्य 'जनसंख्या' परिभाषित नहीं है

यह लगता है मुझे भ्रमित करना, क्योंकि वीएस में इंटेलिजेंस को CSV प्रकार प्रदाता के माध्यम से मेरे डेटा से इस कॉलम को चुनने में कोई समस्या नहीं है।

इसके अलावा, मैंने एक ही प्रकार के प्रदाता के साथ एक प्रोग्राम बनाने की कोशिश की और यह सब ठीक काम करता है। इस तरह:

open FSharp.Data 

[<EntryPoint>] 
let main argv = 
    use file = System.IO.File.CreateText("result.txt") 
    let csv = new CsvProvider<"cities.csv">() 
    for record in csv.Data do 
     fprintfn file "%A" record.Population 
    0 

क्या मुझे कुछ याद आ रही है? किसी भी उत्तर के लिए धन्यवाद।

+2

आप CSV का पूर्ण पथ का उपयोग कर फ़ाइल की कोशिश कर सकते हैं की कोशिश करो? (कभी-कभी एफ # इंटरएक्टिव पथ के बारे में भ्रमित हो जाता है ...) –

+0

यह अजीब है। क्या आप वाकई एफएसआई में सभी लाइनें भेज चुके हैं? मैंने बस कुछ ऐसा करने की कोशिश की जो उसने काम किया। वीएस का क्या संस्करण आप उपयोग कर रहे हैं? –

+0

यदि पथ में कोई समस्या थी तो यह एक स्पष्ट त्रुटि देगा, जब तक कि बदले में कोई शहर csv कहीं भी नहीं है, उस जनसंख्या कॉलम –

उत्तर

0

इस कोड

let Cities = new CsvProvider<"cities.csv">() 
let cities = new Cities() 
let firstRow = cities.Rows |> Seq.head