2017-03-16 33 views
-2

在源圖像中的「id」列中,「 - 」之前的第一個數字在目標圖像中和在目標圖像中的「 - 」之後的第一個數字。在詩句中,我創建了「 - 」之後的大量數據。我嘗試了幾條線,不理解我應該如何前進。從csv讀取一列,並使用先前列數據創建新列

我需要從csv文件讀取這個source column image數據。

,並希望使這種格式target column image

chapter = [] 
verse = [] 
CSV.foreach('test_file.csv') do |row| 
if (row[3] != "id" && row[3] != nil) 
    chapter << row[3].partition("-").first 
    verse << row[3].partition("-").last 
end 
end 
+0

爲什麼「01 09-12」?它不應該是「01 09-11」和「01 12-99」嗎? – SteveTurczyn

+0

從源圖像列「id」有第一個數字是章節,第二個是塊如01-01在第一行和01-04是第二列。然後從兩行開始的第一個01是將存儲在單獨列中的章節。第一行的第二個01和第二行的第四個01將存儲爲小於第一個的塊,如01-03在單獨的列中。 –

回答

0

我在下面寫答案。

我正在閱讀具有相同內容的csv文件。

chapter = [] 
verse = [] 
temp = [] 
pos = 0 

CSV.foreach("test_file.csv") do |row| 
    puts row 
    if (row[1] != "id" && row[1] != nil) 
     chapter << row[1].partition("-").first 
     if(temp.size>0) 
      no = row[1].partition("-").last 
      verse_no = (no.to_i - 1) 
      updated_verse = verse_no < 10 ? "0"+verse_no.to_s : verse_no.to_s 
      verse.insert(pos, temp[pos]+ "-" + updated_verse) 
      temp << no 
      pos = pos + 1 
     else 
      temp << row[1].partition("-").last 
     end 
    end 
end 
puts verse 
puts chapter 
相關問題