From: George George Date: 2009-06-22T23:18:05+09:00 Subject: Re: formatting a listing Brian Candler wrote: > George George wrote: >> >> any ideas? > > src = "1\n2\n3\n\n3\n4\n5\n\n20\n3\n5\n5" > rows = src.split("\n\n").collect { |b| b.split("\n") } > m = rows.collect { |r| r.size }.max > m.times { |i| puts rows.collect { |r| r[i] }.join(",") } > > No witchcraft there. > > I'd say it's better to use fastercsv gem for outputting, as it handles > values which need quoting (e.g. values which themselves contain commas) > > require 'rubygems' > require 'fastercsv' > src = "1\n2\n3\n\n3\n4\n5\n\n20\n3\n5,9\n5" > rows = src.split("\n\n").collect { |b| b.split("\n") } > m = rows.collect { |r| r.size }.max > FCSV { |out| m.times { |i| out << rows.collect { |r| r[i] } } } Hi Brian! Thanks for the example however since i want to have the code read from a file and write to another file i have done this File.open("/home/george/output.csv","w") do |f| src = "" File.open('/home/george/sequences/results_processed.csv').each do |rows| src << rows end rows = src.split("\n\n").collect { |b| b.split("\n") } m = rows.collect { |r| r.size }.max m.times { |i| f.puts rows.collect { |r| r[i] }.join(",") } but it prints out the same old original file without modifications Any ideas? -- Posted via http://www.ruby-forum.com/.