2013-12-15 16 views
5

を列を見つけることができませんそれでは、私は列人口と利益を含むヘッダでCSVファイルしている、と私はF#インタラクティブで作業したいとしましょう。私はF#からインタラクティブなエラーが出ますCSVタイププロバイダは、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:フィールド、コンストラクタまたはメンバ '人口' が

が定義されていないこれがそうですVSのintellisenseは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

このコードを試してみてください? (時には、F#Interactiveがパスに関する混乱...)奇妙な –

+0

を。あなたはfsiにすべての回線を送ったと確信していますか?私はちょうど似たようなものを試しました。どのバージョンのVSを使用していますか? –

+0

パスに問題があった場合、明示的なエラーが発生します。変更しない限り、そのPopulationカラムがないcities.csvがある –

答えて

0

は、CSVファイルへのフルパスを使用して試すことができます

let Cities = new CsvProvider<"cities.csv">() 
let cities = new Cities() 
let firstRow = cities.Rows |> Seq.head 
関連する問題