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
>
>