2016-10-21 27 views
0

我有一個CSV文件的索引,我可以通過它像這樣搜索:找到一個給定的CSV行

csv.find {|row| row[0] == 'MB_ID'} 

它返回一個對象:

#<CSV::Row "MB_ID":"MB_ID"> 

我怎樣才能得到索引該行相對於CSV文件? 我試過.index但沒有工作。

下面是一個示例:

MB_ID 
CATEGORIE_ARTICLE_ARTICLE_ID 
COMMENTAIRE_ID 
CLUB_ID 
MESSAGE_ID 
EXP_ID 
ADH_ID 
PRO_ID 
LA_ID 
SA_ID 

所以預期的結果將是1 「MB_ID」(或0取決於如何CSV被索引)。

我用讀文件:

csv = File.read("foreign.csv") 
csv = CSV.parse(csv, :headers => true) 
+0

'csv.index {|行|行[0] =='MB_ID'}'似乎適用於我。 –

+0

您是否可以包含樣本CSV文件和您的預期結果? – Stefan

+0

你如何閱讀CSV文件? – Stefan

回答

2

index僅適用於數組。對於像CSV::Table可枚舉,你必須使用find_index

csv.find_index { |row| row[0] == 'MB_ID' } #=> 0 
相關問題