On 15.10.2007 19:41, Simon Schuster wrote:
> it seems that I have to run it a couple different times for it to
> work.. array.length = 16576, if that could be a potential problem. if
> it is, how do I work around it?
> 
> 077:0> array = File.read("/text.txt").to_a.each { |x| x.chomp! }
> 080:0> array.each_with_index { |x,y|
>     array.delete_at(y) if x.empty? == true
> }
> 
> still leaves me with plenty of empty array items
> 080:0> array[-3]
> ""

Your bug is in the loop: you iterate and delete at the same time which 
will likely yield strange results (as you observe).  Why don't you just do

array.delete_if {|x| x.empty?}

Btw, empty? == true is quite dangerous because in Ruby "true" is not the 
only valid value for true.

Apart from that it seems your code is pretty inefficient since you do a 
lot copying around.  I'd rather do this

ar = []
File.foreach("text.txt") do |line|
   line.chomp!
   ar << line unless line.empty?
end

Cheers

	robert