This program is very simple. It is suppose to load in the text file,
load
each character into an array, then print out the array one letter at a
time. It is supposed to wait 1 second each time it prints. This
freezes
every time I run it. Any ideas?
Adam
class Slow_Array
def array_split
@f = File.open('Text_for_TextReader.txt','r') do |f|
f.gets.scan(/\w/)
end
end
def print_and_wait
@f.each {
|i|
print i
sleep 1
}
end
end
#-------------------------------------------------
Main logic
TextReader = Slow_Array.new
Bring file into program
TextReader.array_split
Print each character, waiting one second in between each printing
TextReader.print_and_wait
On Fri, Dec 19, 2008 at 10:21 AM, Adam S. [email protected]
wrote:
def array_split
}
Print each character, waiting one second in between each printing
TextReader.print_and_wait
You can either:
$stdout.sync = true
or:
class SlowArray
def slow_each
File.open(‘Text_for_TextReader.txt’) do |file|
while line = file.gets
puts line
sleep 1
end
end
end
SlowArray.new.slow_each
^ manveru
On 19.12.2008, at 01:21 , Adam S. wrote:
class Slow_Array
print i
Bring file into program
TextReader.array_split
Print each character, waiting one second in between each printing
TextReader.print_and_wait
–
Put your computer to work.
www.volunteerathome.com
It doesn’t freeze, but the output is buffered so it appears that way.
try adding a flush:
print i
STDOUT.flush
sleep 1
einarmagnus
STDOUT.flush
Did exactly what I wanted and it was an easy fix. I would have never
figured that out. Thank you.
Adam