0

次のようなデータサンプルがあります

Ticker,Date/Time,Conseqhigher,Conseqlower,H,L,newHigh,newLow,Prevbarlow,Prevbarhigh,uptrend,dntrend,min15low,min15high
EUR.USD-IDEALPRO-CASH,2012-02-19 17:20,1,0,1.3208,1.3198,1,1,1.3183,1.3211,0,0,1.3139,1.3153
EUR.USD-IDEALPRO-CASH,2012-02-19 17:25,0,0,1.3209,1.3198,1,0,1.3198,1.3208,0,0,1.3139,1.3153

より高速なcsvを使用して開いて後で処理しようとしています。

require 'fastercsv'
def query()

return FasterCSV.read("c:\\temp\\test.csv")

end

read メソッドにはヘッダー オプションがありません。どうすれば修正できますか?

4

1 に答える 1

1

標準の CSV ライブラリを使用する必要があります。これは FasterCSV に加えて、Ruby 1.9 の m17n エンコーディング エンジンをサポートしています。

質問に戻りますが:headers、ヘッダーから各値にアクセスするオプションがあります。

この#readメソッドはファイル全体を丸呑みします:

CSV.read(CSV_FILE_PATH, :headers => true).each do |line|
  puts line['Ticker']
end

この#foreachメソッドは、読み取り用の主要なインターフェイスです。

CSV.foreach(CSV_FILE_PATH, :headers => true) do |line|
  puts line['Ticker']
end

どちらの方法でも次のように出力されます。

EUR.USD-IDEALPRO-CASH
EUR.USD-IDEALPRO-CASH

http://ruby-doc.org/stdlib-1.9.2/libdoc/csv/rdoc/CSV.htmlを参照してください。

于 2013-03-23T18:02:59.727 に答える