I think what the original author of this message was trying to say was "Have you tryed RegExps?" =P Paulo Jorge Duarte Köãh paulo.koch / gmail.com On 2006/12/28, at 06:35, William James wrote: > Taylor Strait wrote: >> As a Rails developer, I've been learning Ruby on a need-to-know >> basis. >> However, I now need to tap its power to batch alter some very >> large text >> dumps and find myself a bit lost. Here is what I need to do: >> >> Transform data in files like "alabama.txt": >> * White Hall, Lowndes County >> * Wilmer, Mobile County >> * Wilsonville, Shelby County >> * Wilton, Shelby County >> * Winfield, Marion County >> * Winterboro, Talladega County >> >> ..into this format: >> White Hall >> Wilmer >> Wilsonville >> Wilton >> Winfield >> Winterboro >> >> I have created a method for doing this in "cleanup.rb": >> >> def cleanup(state) >> diskfile = File.new(state + "-cleaned.txt", "w") >> $stdout = diskfile >> >> IO.foreach(state + ".txt") do |line| >> line.delete("\*") >> line.strip! >> temp = line.split(",") >> temp.delete_at(1).to_s >> puts temp >> end >> >> diskfile.close >> $stdout = STDOUT >> end >> >> So I go into IRB and here is how my session goes: >> >> irb(main):008:0> require 'cleanup' >> => true >> irb(main):009:0> cleanup(alabama) >> NameError: undefined local variable or method `alabama' for >> main:Object >> irb(main):010:0> cleanup >> ArgumentError: wrong number of arguments (0 for 1) > > def cleanup(state) > File.open(state + "-cleaned.txt", "w") do |outfile| > IO.foreach(state + ".txt") do |line| > outfile.puts line[ /^[\s*]*(.*),[^,]*$/, 1 ] > end > end > end > > Or: > > def cleanup(state) > File.open(state + "-cleaned.txt", "w") { |out| > out.puts IO.readlines(state + ".txt").map{|line| > line[ /^[\s*]*(.*),[^,]*$/, 1 ] } } > end > > Or even: > > def cleanup(s) > open(s+"-cleaned.txt","w"){|o|o<<IO.read(s+".txt"). > gsub(/^[ *]*|,.*$/,"")} > end > >