Bug #2766

Cannot use CSV under windows 7

Added by kang cao almost 2 years ago. Updated 10 months ago.

[ruby-core:28264]
Status:Rejected Start date:02/20/2010
Priority:Normal Due date:
Assignee:James Gray % Done:

0%

Category:lib
Target version:1.9.1
ruby -v:ruby 1.9.1p378 (2010-01-10 revision 26273) [i386-mingw32]

Description

I try to use Ruby under my windows 7 notebook. but I find that CSV cannot work. it alway throws " CSV::MalformedCSVError:Unquoted fields do not allow \r or \n(line 1)"
my system is windows 7
ruby 1.9.1p378(2010-01-10 revision 26273)[i386-mingw32]
error messages:
CSV::MalformedCSVError: Unquoted fields do not allow \r or \n (line 1).
        from C:/Ruby19/lib/ruby/1.9.1/csv.rb:1857:in `block (2 levels) in shift'

        from C:/Ruby19/lib/ruby/1.9.1/csv.rb:1847:in `gsub!'
        from C:/Ruby19/lib/ruby/1.9.1/csv.rb:1847:in `block in shift'
        from C:/Ruby19/lib/ruby/1.9.1/csv.rb:1809:in `loop'
        from C:/Ruby19/lib/ruby/1.9.1/csv.rb:1809:in `shift'
        from C:/Ruby19/lib/ruby/1.9.1/csv.rb:1754:in `each'
        from (irb):42
        from C:/Ruby19/bin/irb:12:in `<main>'

following is my code:

require 'CSV'
csvreader=CSV.open("D:\\tmp\\march.csv","r")
csvreader.each do |row|
caller=row[0]
callee=row[1]
puts caller, callee
end
csvreader.close

following is part of my data, we have ten thousand lines of this kind of data
59855500	13716050909	113	0.22
59855500	15801306235	9	0.22
59855500	13716050909	26	0.22
59855500	13581783508	15	0.22
59855500	13661273974	14	0.22
59855500	80101168	7	0.22
59855500	13716050909	25	0.22
59855500	13716050909	18	0.22
59855500	13716050909	71	0.22
59855500	13520988518	35	0.22
59855500	13716050909	83	0.22
59855500	13641324296	19	0.22
59855500	13716590624	9	0.22
59855500	95555	13	0.22

History

Updated by Yui NARUSE almost 2 years ago

  • Status changed from Open to Assigned
  • Assignee set to James Gray

Updated by James Gray almost 2 years ago

  • Category set to lib
  • Status changed from Assigned to Rejected
I assume CSV's auto line ending detection is failing on you data for some reason.  A likely cause could be fields that contain line endings different from those used to end lines.  You should be able to solve this by setting the :row_sep manually.  I would try:

  CSV.open(…, :row_sep => "\r\n")

If that doesn't work, try a \n alone.

Also available in: Atom PDF