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
--
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
···
On 19.12.2008, at 01:21 , Adam Steinfurth wrote:
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
--
Put your computer to work.
www.volunteerathome.com
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 Fri, Dec 19, 2008 at 10:21 AM, Adam Steinfurth <steinfal@gmail.com> wrote:
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
STDOUT.flush
Did exactly what I wanted and it was an easy fix. I would have never
figured that out. Thank you.
Adam
···
On Thu, Dec 18, 2008 at 9:02 PM, Michael Fellinger <m.fellinger@gmail.com>wrote:
On Fri, Dec 19, 2008 at 10:21 AM, Adam Steinfurth <steinfal@gmail.com> > wrote:
> 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
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
--
Put your computer to work.
www.volunteerathome.com