From: rpardee@... Date: 2005-06-03T06:15:23+09:00 Subject: Re: Nuby problem w/CSV, tab-delimited files & embedded double-quotes Woah--you are giving me the freak-out with that code. 8^) I shouldn't have any escaped tabs--so that should suit. Thanks! -Roy Ara.T.Howard@noaa.gov wrote: > On Thu, 2 Jun 2005 rpardee@comcast.net wrote: > > > Hey All, > > > > I've got a file of tab-delimited data that I need to read in. Up until > > today this approach has worked wonderfully: > > > > this_file = CSV.open(decrypted_file, "r", "\t") > > header = this_file.shift > > this_file.each do |line| > > # do stuff w/line here > > end > > this_file.close > > > > But today's file has an entry w/a pair of double-quotes around it. So > > now I get: > > > > c:/program files/ruby/lib/ruby/1.8/CSV.rb:639:in `get_row': > > CSV::IllegalFormatError (CSV::IllegalFormatError) > > from c:/program files/ruby/lib/ruby/1.8/CSV.rb:556:in `each' > > > > I've looked through the rubydocs on CSV & am not finding a method for > > telling CSV to expect double-quotes in the file. Is there such a > > thing? > > > > Thanks! > > > > -Roy > > > > P.S. I believe the following illustrates the problem--the "F" street > > entry line does not seem to parse: > > > > require "CSV" # Lib for working with comma-separated-values > > files > > > > somedata = < > userid line1 > > 1-2700 1313 Mockingbird Lane > > 2-2706 7100 58th Ave SE > > 4-2718 128 S. "F" Street > > 3-2712 45 600th Ave. NE > > END_OF_FILE > > > > somedata.each_line do |l| > > x = CSV.parse_line(l, "\t")[0] > > puts x > > end > > > > puts "Finished!" > > i think that, to be legitimate, this file would have to be > > > 4-2718 "128 S. ""F"" Street" > > so the data is corrupt and may need to be pre-munged. if you file is always > tab delimited why not > > table = [] > parse = proc{|line| line.split(%r/\t/).map{|c| c.strip}} > IO::readlines(decrypted_file){|line| table << parse[line]} > header = table.shift > > or do you sometimes have escaped tabs? > > cheers. > > -a > -- > =============================================================================== > | email :: ara [dot] t [dot] howard [at] noaa [dot] gov > | phone :: 303.497.6469 > | My religion is very simple. My religion is kindness. > | --Tenzin Gyatso > ===============================================================================