From: Yukihiro Matsumoto Date: 2011-03-21T22:12:45+09:00 Subject: [ruby-core:35535] Re: [Ruby 1.9 - Bug #4515][Open] File.each_line read all lines of file as one line Hi, The default line separator is a newline ("\n"), but if you want to change it, try f.each_line("\r") instead. matz. In message "Re: [ruby-core:35534] [Ruby 1.9 - Bug #4515][Open] File.each_line read all lines of file as one line" on Mon, 21 Mar 2011 22:05:34 +0900, Yen-Nan Lin writes: |I access a tab-delimited text file from Excel, the text file is 5 lines in my editors (TextEdit, TextWrangler). | |However, when I use File.each_line to read it, this method only iterate once and combine 5 lines to 1 line. | |I expect my code to puts count = 5, but it print 1. | |Below is my code, the test2.txt file is in attachment if you need. | |---------------------------------------------------- | |filePath = "test2.txt" | |data = Array.new | |File.open(filePath, 'r') do |f| | count = 0 | f.each_line do |line| | data << line.split.map { |entry| entry.to_i } | count += 1 | end | puts count |end | |---------------------------------------------------------- | |I find a solution in http://railsforum.com/viewtopic.php?id=15582 | |But I think this bug should be solved. | |Thank you very much!! | |Yen-Nan Lin | | |-- |http://redmine.ruby-lang.org |