On Tue, 29 Aug 2006, Mark Van Holstyn wrote:

> Is there any way to make the faster CSV library parse this line?
>
>
> 20  6" Multibrand Pricer Insert 2 4
>
> I know i can use the :col_sep options to change the column separator to a
> tab, but it fails to parse this because of an unclosed quoted field. It
> seems like there should be an option to say that the fields are not quoted.
>
> Thanks,

it that's indeed the case why not simply do it yourself?

     harp:~ > cat a.rb
     require 'rubygems'
     require 'fastercsv'

     def munge line
       line.gsub!(%r/"+/){|q| q.size % 2 == 0 ? q : '"' + q}
       line.gsub!(%r/\ *\t\ */, '","')
       "%s%s%s" % ['"', line, '"']
     end

     def show line
       puts line
       munged = munge line
       puts munged
       p(FCSV.parse(munged).first)
       puts
     end

     lines = <<-lines
     20      6"      Multibrand      Pricer  Insert  2       4
     20      6""     Multibrand      Pricer  Insert  2       4
     20      6"""    Multibrand      Pricer  Insert  2       4
     20      6""""   Multibrand      Pricer  Insert  2       4
     lines

     lines.each{|line| show line.strip}

     harp:~ > ruby a.rb
     20      6"      Multibrand      Pricer  Insert  2       4
     "20","6""","Multibrand","Pricer","Insert","2","4"
     ["20", "6\"", "Multibrand", "Pricer", "Insert", "2", "4"]

     20      6""     Multibrand      Pricer  Insert  2       4
     "20","6""","Multibrand","Pricer","Insert","2","4"
     ["20", "6\"", "Multibrand", "Pricer", "Insert", "2", "4"]

     20      6"""    Multibrand      Pricer  Insert  2       4
     "20","6""""","Multibrand","Pricer","Insert","2","4"
     ["20", "6\"\"", "Multibrand", "Pricer", "Insert", "2", "4"]

     20      6""""   Multibrand      Pricer  Insert  2       4
     "20","6""""","Multibrand","Pricer","Insert","2","4"
     ["20", "6\"\"", "Multibrand", "Pricer", "Insert", "2", "4"]

if fastercsv handled __all__ the 'simple' exectptions is would be slow and
complicated to maintain.

kind regards.

-a
-- 
to foster inner awareness, introspection, and reasoning is more efficient than
meditation and prayer.
- h.h. the 14th dalai lama