2013-12-15 20 views
5

Diyelim ki, bir Popülasyon ve Kar sütunları içeren bir üstbilgiye sahip bir CSV dosyanız var ve bununla F # etkileşimli çalışmak istiyorum.CSV Türü Sağlayıcı, F # etkileşimli sütun bulamıyor

#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 

Ben interaktif F # gelen bir hata alıyorum: Aşağıdaki kod var

hata FS0039: Bu gibi görünüyor

tanımlı değil tarla, yapıcı veya üye 'Nüfus' Bana kafa karıştırıcı çünkü VS'deki intellisense, bu sütunu bir CSV türü sağlayıcı aracılığıyla verdiğim veriden ayırmada sorun yaşamadı.

Ayrıca, aynı tür sağlayıcıya sahip bir program oluşturmayı denedim ve her şey gayet iyi çalışıyor. Bunun gibi:

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 

Bir şey mi eksik? Herhangi bir cevap için teşekkürler.

+2

sen CSV dosyasına tam yolunu kullanarak deneyebilir miyim deneyin? (Bazen F # Interactive yollar hakkında karışır ...) –

+0

Bu garip. Bütün hatları fsi'ye gönderdiğine emin misin? Çalıştığı benzer bir şeyi denedim. VS'nin hangi versiyonunu kullanıyorsunuz? –

+0

Yolla ilgili bir sorun varsa, açık bir hata verecekti, değiştirmeden, bu popülasyon sütunu –

cevap

0

Bu kodu

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