2011-08-04 6 views
2

|을 구분 기호로 사용하는 CSV 파일이 있다고 해봅시다. 내용을 읽고 인쇄하는 방법을 알고 있지만 인쇄 방법에 대해서는 잘 모르겠습니다. Row 7 has an empty field. 어떤 분야인지를 보여주는 것이 좋겠지 만 지금 당장 제 관심사를 보여줘야하고 제 두 번째 일을 시도 할 수는 있습니다.Ruby에서 빈 필드가있는 행을 인쇄하십시오.

require 'csv' 
require 'pp' 

CSV.open("exam.txt", 'r',"|") do |row| 
    pp row 
end 

답변

2
require 'csv' 
require 'pp' 

i = 0 
CSV.open("exam.txt", 'r',"|") do |row| 
    i += 1; 
    pp row 
    pp "Row " << i.to_s << " has an empty field" if row.include?(nil) 
end 

당신은 nil 필드를 찾을 수 row.index(nil) 같은 것을 사용할 수 있습니다. EnumerableArray 설명서를 읽으면 아마도 도움이 될 것입니다.

1

CSV 라이브러리에는 Ruby의 Enumerable 모듈이 포함되어 있으므로 Enumerable's each_with_index 메서드를 사용할 수 있습니다. 인덱스는 0을 기준으로합니다.

CSV.open("exam.txt", "r", "|").each_with_index do |row, index| 
    pp row 
    # If it's blank: 
    pp "Row #{index + 1} has an empty field" 
end 
관련 문제