Q about the FasterCSV

Hi,

I have a csv file, which has the following data, for example:
test.csv

line 1, “1”
line 2, “2”

And I use the following code snippet to parse this file,

require ‘fastercsv’
FasterCSV.read(“test.csv”)

unfortunately, It failed and complained that:

FasterCSV::MalformedCSVError: Unclosed quoted field on line 1.
e:/ruby/lib/ruby/gems/1.8/gems/fastercsv-0.2.0/lib/faster_csv.rb:1165:in
shift' e:/ruby/lib/ruby/gems/1.8/gems/fastercsv-0.2.0/lib/faster_csv.rb:1090:inshift’
e:/ruby/lib/ruby/gems/1.8/gems/fastercsv-0.2.0/lib/faster_csv.rb:1040:in
each' e:/ruby/lib/ruby/gems/1.8/gems/fastercsv-0.2.0/lib/faster_csv.rb:1051:inread’
e:/ruby/lib/ruby/gems/1.8/gems/fastercsv-0.2.0/lib/faster_csv.rb:840:in
read' e:/ruby/lib/ruby/gems/1.8/gems/fastercsv-0.2.0/lib/faster_csv.rb:790:inopen’
e:/ruby/lib/ruby/gems/1.8/gems/fastercsv-0.2.0/lib/faster_csv.rb:840:in
`read’

I’m wondering what the real problem is,

Do I really need to escape the double quote before pass the file to
read?

On Apr 26, 2006, at 11:38 PM, Eric L. wrote:

require ‘fastercsv’
FasterCSV.read(“test.csv”)

Remember its “comma-separated”, fiddling around I discovered that

line 1,“1”
line 2,“2”

Works absolutely fine. I’m not CSV guru so I don’t know if FasterCSV
has a bug or if your CSV is malformed.

I did check this problem out finally:

In the csv file,
line 1,“1”
line 2, “2”

the line 1 could be parsed successfully, but the line 2 will failed.
The only difference between the two lines is that there is a space char
between the comma char and the double quote char in line 2, while line 1
not.

I suspect that space char between the comma char(,) and the double quote
char(") make the faster csv parser to take the space char as part of the
second field. And then the double quote should be escaped, but it
hadn’t.

Is it a bug or expected?

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs