Odd CSV behavior

Hello All,

I'm hoping someone out there can help me troubleshoot a strange problem
that I'm experiencing with CSV files.

I download a file, in CSV format, from a website and when I try to parse
with CSV and Faster CSV I get the following error.

/usr/local/lib/ruby/1.8/csv.rb:639:in `get_row': CSV::IllegalFormatError
(CSV::IllegalFormatError)
  from /usr/local/lib/ruby/1.8/csv.rb:556:in `each'
  from /usr/local/lib/ruby/1.8/csv.rb:531:in `parse'
  from /usr/local/lib/ruby/1.8/csv.rb:311:in `open_reader'
  from /usr/local/lib/ruby/1.8/csv.rb:85:in `open'

But if I open the CSV file in TextMate, select all of the contents,
paste and save that content into a new CSV file, created with TextMate,
the CSV parser can process it just fine.

Anyone have any idea about what might be causing this?

Thanks,

binh

···

--
Posted via http://www.ruby-forum.com/.

I think the csv file you have must be corrupted .
Check out with the file.
Kranthi.

···

On Mon, Aug 4, 2008 at 11:59 AM, Binh Ly <binh@pigbaby.net> wrote:

Hello All,

I'm hoping someone out there can help me troubleshoot a strange problem
that I'm experiencing with CSV files.

I download a file, in CSV format, from a website and when I try to parse
with CSV and Faster CSV I get the following error.

/usr/local/lib/ruby/1.8/csv.rb:639:in `get_row': CSV::IllegalFormatError
(CSV::IllegalFormatError)
from /usr/local/lib/ruby/1.8/csv.rb:556:in `each'
from /usr/local/lib/ruby/1.8/csv.rb:531:in `parse'
from /usr/local/lib/ruby/1.8/csv.rb:311:in `open_reader'
from /usr/local/lib/ruby/1.8/csv.rb:85:in `open'

But if I open the CSV file in TextMate, select all of the contents,
paste and save that content into a new CSV file, created with TextMate,
the CSV parser can process it just fine.

Anyone have any idea about what might be causing this?

Thanks,

binh
--
Posted via http://www.ruby-forum.com/\.

Hello,

···

Binh Ly <binh@pigbaby.net> wrote:

I download a file, in CSV format, from a website and when I try to parse
with CSV and Faster CSV I get the following error.

/usr/local/lib/ruby/1.8/csv.rb:639:in `get_row': CSV::IllegalFormatError
(CSV::IllegalFormatError)
  from /usr/local/lib/ruby/1.8/csv.rb:556:in `each'
  from /usr/local/lib/ruby/1.8/csv.rb:531:in `parse'
  from /usr/local/lib/ruby/1.8/csv.rb:311:in `open_reader'
  from /usr/local/lib/ruby/1.8/csv.rb:85:in `open'

But if I open the CSV file in TextMate, select all of the contents,
paste and save that content into a new CSV file, created with TextMate,
the CSV parser can process it just fine.

seems like a charset issue. maybe you should compare the two files (original and after copying with textmate) regarding character encoding and line endings. maybe even using a diff tool. this should help you figure out the exact problem, if you really need to know it.

Greetings,
Niklas

My guess is end of line format for the next file. Maybe you're reading the whole file in as a single line and the EOL char is confusing CSV. TextMate could be reformatting it when you save it out.

···

On Aug 3, 2008, at 23:29 , Binh Ly wrote:

But if I open the CSV file in TextMate, select all of the contents,
paste and save that content into a new CSV file, created with TextMate,
the CSV parser can process it just fine.