Project

General

Profile

Actions

Bug #2766

closed

Cannot use CSV under windows 7

Added by cooker_bj (kang cao) almost 15 years ago. Updated over 13 years ago.

Status:
Rejected
Target version:
ruby -v:
ruby 1.9.1p378 (2010-01-10 revision 26273) [i386-mingw32]
Backport:
[ruby-core:28264]

Description

=begin
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
=end

Actions #1

Updated by naruse (Yui NARUSE) almost 15 years ago

  • Status changed from Open to Assigned
  • Assignee set to JEG2 (James Gray)

=begin

=end

Actions #2

Updated by JEG2 (James Gray) almost 15 years ago

  • Category set to lib
  • Status changed from Assigned to Rejected

=begin
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.
=end

Actions

Also available in: Atom PDF

Like0
Like0Like0