From: 7stud -- Date: 2008-01-29T03:29:45+09:00 Subject: Re: lining up delimiter separated text 7stud -- wrote: > scooterm@hotmail.com wrote: >> BEFORE: >> fname ;; lname ;; age ;; sex ;; >> homer ;; simpson ;; 33 ;; male >> maggie;; simpson ;; 03 ;; female >> bart;;simpson;;10;;male >> >> AFTER: >> fname ;; lname ;; age ;; sex >> homer ;; simpson ;; 33 ;; male >> maggie ;; simpson ;; 03 ;; female >> bart ;; simpson ;; 10 ;; male >> >> REQUEST: >> Show a really cool way to change before into after with >> ruby. Cool = fewest lines OR just plain clever. >> >> --thanks > > How about: > > str =< fname ;; lname ;; age ;; sex ;; > homer ;; simpson ;; 33 ;; male > maggie;; simpson ;; 03 ;; female > bart;;simpson;;10;;male > STR > > str.each("\n") do |line| > puts "%-8s%-4s%-8s%-4s%-4s%-4s%-8s" % line.split(/(;;)/).map {|elmt| > elmt.strip} > end > Or, this might be a little better: str.each("\n") do |line| puts "%-8s%-4s%-8s%-4s%-4s%-4s%-8s" % line.chomp.split(/\s*(;;)\s*/) end -- Posted via http://www.ruby-forum.com/.