From: Chris Lowis Date: 2008-09-02T17:59:39+09:00 Subject: Re: Parsing a CSV file column-wise On Sep 2, 8:34 am, Lars Broecker wrote: > Chris Lowis schrieb: > > > > > Is there a short-cut to parsing a CSV file column-wise using any of > > the available Ruby CSV libraries ? > > > For example, at the moment I have: > > >  require 'csv' > >  data = "1,2,3\n4,5,6\n7,8,9" > >  CSV::parse(data)   # => [["1", "2", "3"], ["4", "5", "6"], ["7", "8", > > "9"]] > Lars, That's great ! To summarise for anyone else looking for an answer : Given a CSV file tmp.csv one,two,three 1,2,3 4,5,6 7,8,9 Where the first row contains the column headers require 'fastercsv' table = FasterCSV::table('./tmp.csv') table.by_col[2] # => [3, 6, 9] Thanks again, Chris > > But what I'd like is: > > >  CSV::parse(data,'columnwise')   # => [["1", "4", "7"], ["2", "5", > > "8"], ["3", "6", "9"]] > > > Perhaps I just need to run the returned array through some kind of > > transformation ? > > Take a look at FasterCSV. It is available via rubygems and allows > different modes in which to work on the parsed csv including working on > columns of csv files. Great library! > > HTH, > Lars