Sleep


#1

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


#2

On Fri, Dec 19, 2008 at 10:21 AM, Adam S. removed_email_address@domain.invalid
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


#3

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


#4

STDOUT.flush
Did exactly what I wanted and it was an easy fix. I would have never
figured that out. Thank you.

Adam