From: George George Date: 2009-06-15T22:08:18+09:00 Subject: Re: formatting a listing (printf "%s\n\n" , (begin (matrix = (Array.new)) (ncols = 1) (matrix.push(Array.new)) (((IO.readlines'/home/george/test.data'). map { | line | (line.strip) }). each { | item | (if (item == "") (ncols = (ncols + 1)) (matrix.push(Array.new)) else ((matrix.at(ncols - 1)).push item) end) }) (height = ((matrix.map { | column | (column.size) }).max)) (widths = (matrix.map { | column | ((column.map { | cell | ((sprintf("%s" , cell)).size) }).max) })) ((((matrix.map { | column | (column + (Array.new((height - (column.size)) , ""))) }) . transpose). map { | row | ((([ row , widths ].transpose). map { | r , w | (sprintf( "%*s" , w , r)) }) . join ",")}). join "\n") end)) produces an error: in `sprintf': no implicit conversion from nil to integer (TypeError) -- Posted via http://www.ruby-forum.com/.