Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > Ruby > Complex CSV parsing

Reply
Thread Tools

Complex CSV parsing

 
 
Stuart Clarke
Guest
Posts: n/a
 
      01-13-2009
I am trying to parse data from a file where the values are common
seperated, however there is slightly more to the file than just commas,
see below

for
(;;{"t":"msg","c":"p_114000000","ms":[{"type":"msg","msg":{"text":"you
around"}]}

From reading around fasterCSV seems the way forward therefore I have
this code

require 'rubygems'
require 'faster_csv'

FasterCSV.foreach("C:\\Documents and
Settings\\sjc\\Desktop\\p_1149549999=2[1].txt", :row_sep => ",") do
|row|
puts row[0]
break
end

However I am getting an error like this

C:/Program
Files/ruby/lib/ruby/gems/1.8/gems/fastercsv-1.4.0/lib/faster_csv.rb:1
650:in `shift': Illegal quoting on line 1.
(FasterCSV::MalformedCSVError)
from C:/Program
Files/ruby/lib/ruby/gems/1.8/gems/fastercsv-1.4.0/lib/fa
ster_csv.rb:1568:in `loop'
from C:/Program
Files/ruby/lib/ruby/gems/1.8/gems/fastercsv-1.4.0/lib/fa
ster_csv.rb:1568:in `shift'
from C:/Program
Files/ruby/lib/ruby/gems/1.8/gems/fastercsv-1.4.0/lib/fa
ster_csv.rb:1513:in `each'
from C:/Program
Files/ruby/lib/ruby/gems/1.8/gems/fastercsv-1.4.0/lib/fa
ster_csv.rb:1017:in `foreach'
from C:/Program
Files/ruby/lib/ruby/gems/1.8/gems/fastercsv-1.4.0/lib/fa
ster_csv.rb:1191:in `open'
from C:/Program
Files/ruby/lib/ruby/gems/1.8/gems/fastercsv-1.4.0/lib/fa
ster_csv.rb:1016:in `foreach'
from C:/Documents and Settings/sjc/Desktop/test.rb:4

Can anyone help me out with this?

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

 
Reply With Quote
 
 
 
 
Brian Candler
Guest
Posts: n/a
 
      01-13-2009
Stuart Clarke wrote:
> I am trying to parse data from a file where the values are common
> seperated, however there is slightly more to the file than just commas,
> see below
>
> for
> (;;{"t":"msg","c":"p_114000000","ms":[{"type":"msg","msg":{"text":"you
> around"}]}


That is not valid CSV, so FasterCSV won't help you.

I think you'll need to describe more carefully how you want this input
line broken up, and give some more examples.

It looks to me like a nested structure. If every line has exactly the
same set of fields you may get away with a regexp. But if not, you may
have to write a full-blown parser for this language.

However, this may be sufficiently close to JSON that you could use an
existing JSON parser. http://www.json.org/

(But in that case, I don't know what the "for(;;" is doing on the
front)
--
Posted via http://www.ruby-forum.com/.

 
Reply With Quote
 
 
 
 
Mark Thomas
Guest
Posts: n/a
 
      01-13-2009
On Jan 13, 8:42*am, Stuart Clarke <stuart.clarke1...@gmail.com> wrote:
> I am trying to parse data from a file where the values are common
> seperated, however there is slightly more to the file than just commas,
> see below
>
> for
> (;;{"t":"msg","c":"p_114000000","ms":[{"type":"msg","msg":{"text":"you
> around"}]}


That's not a CSV file. It looks like some sort of serialized data
structure. If you know how it was serialized, you should be able to
easily restore the structure.

If not, you can use Treetop to specify the grammar including the
balanced delimiters {}, (), and [], which apparently take precedence
over the commas, and perform the parsing.
 
Reply With Quote
 
Ollivier Robert
Guest
Posts: n/a
 
      01-14-2009
In article <>,
Stuart Clarke <> wrote:
>I am trying to parse data from a file where the values are common
>seperated, however there is slightly more to the file than just commas,
>see below
>
>for
>(;;{"t":"msg","c":"p_114000000","ms":[{"type":"msg","msg":{"text":"you
>around"}]}


It looks more JSON than CSV, try using a JSON parser instead.
--
Ollivier ROBERT -=- EEC/RIF/SEU -=-
Systems Engineering Unit
 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
How complex is complex? Kottiyath Python 22 03-28-2009 10:11 PM
wsdl2java: method parameter a complex type that extends another complex type Robert Mark Bram Java 0 02-04-2007 10:06 AM
[XML Schema] Content type of complex type definition with complex content Stanimir Stamenkov XML 2 10-25-2005 10:16 AM
For expert on complex loops (reposted) - complex looping problem news.amnet.net.au Java 1 04-13-2004 07:10 AM
Perl expression for parsing CSV (ignoring parsing commas when in double quotes) GIMME Perl 2 02-11-2004 05:40 PM



Advertisments