[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

basic question...

mopthisandthat

3/22/2006 3:56:00 PM

Hello,

Suppose "OOO.csv" is a data file with 9 columns, and I want to create a
new file that is consisted of 2nd, 5th, and 7th columns of the OOO.csv
(i.e., subset of the original), how do I do this?

Thanks.

3 Answers

Robert Klemme

3/22/2006 4:02:00 PM

0


<kidding>This is a Ruby and not a Basic group.</kidding>

mopthisandthat@hotmail.com wrote:
> Suppose "OOO.csv" is a data file with 9 columns, and I want to create a
> new file that is consisted of 2nd, 5th, and 7th columns of the OOO.csv
> (i.e., subset of the original), how do I do this?

Use CSV for parsing and writing:

http://www.ruby-doc.org/stdlib/libdoc/csv/rdoc/...

Kind regards

robert

Alder Green

3/22/2006 4:02:00 PM

0

Hi

Iterate over OOO.csv's lines, split each line as you wish (probably
using slice notation is the easiest for fixed length columns), and
writing each slice into the desired destination file.

Regards,
Alder

On 3/22/06, mopthisandthat@hotmail.com <mopthisandthat@hotmail.com> wrote:
> Hello,
>
> Suppose "OOO.csv" is a data file with 9 columns, and I want to create a
> new file that is consisted of 2nd, 5th, and 7th columns of the OOO.csv
> (i.e., subset of the original), how do I do this?
>
> Thanks.
>
>
>


James Gray

3/22/2006 4:16:00 PM

0

On Mar 22, 2006, at 9:58 AM, mopthisandthat@hotmail.com wrote:

> Hello,
>
> Suppose "OOO.csv" is a data file with 9 columns, and I want to
> create a
> new file that is consisted of 2nd, 5th, and 7th columns of the OOO.csv
> (i.e., subset of the original), how do I do this?

My suggestion, if you don't mind using a non-standard library:

Neo:~/Desktop$ ls
000.csv trim_columns.rb
Neo:~/Desktop$ cat 000.csv
1,2,3,4,5,6,7,8,9
a,b,c,d,e,f,g,h,i
Neo:~/Desktop$ ruby -rubygems trim_columns.rb 000.csv
2,5,7
b,e,g
Neo:~/Desktop$ cat trim_columns.rb
#!/usr/local/bin/ruby -w

require "faster_csv"

FasterCSV.filter { |row| row.replace(row.values_at(1, 4, 6)) }

__END__

Hope that helps.

James Edward Gray II