Okay I am playing around with ruby and its telnet functionality and I ran into an interesting problem. I am trying to pull up a report from a telnet based program via ruby and I can navigate all the menus and enter the date and times for the report I want but as soon as it would usually pull up the report to the screen I receive this: WARNING: terminal cannot clear to end of line WARNING: terminal cannot clear screen WARNING: terminal cannot home cursor WARNING: terminal cannot move cursor to lower left of screen WARNING: terminal cannot scroll backwards I was just wondering if anyone here familiar with telnet shells might understand what I am seeing. I am wondering if it might be how ruby negotiates options with the server but I tried looking through Ethereal and it all generally looks the same as if I were to connect using Putty. Any ideas? thanks Here is the full code: <code> require 'net/telnet' #connect & login optim = Net::Telnet::new("Host" => "xxx.xxx.xxx.xxx", "Port" => 23, "Timeout" => 60, "Prompt" => /\[\?25h/, "Output_log" => "out_log.txt", "Dump_log" => "dump_log.rtf") optim.login("username", "pass") puts "Connection Established." logFile = File.open("C:\opt_test.log", "w") #navigate to report screen (menu items 1,5,1) sleep(1) optim.cmd('1') { |rcv| puts rcv } #reports optim.cmd('5') { |rcv| puts rcv } #sales optim.cmd('1') { |rcv| puts rcv } #location activity puts "Please enter the date of interest in MM/DD/YYYY:" date = gets.strip puts "Please enter the meal period (breakfast, lunch, dinner):" period = gets.strip case period when "breakfast" sTime = "" eTime = "11:00:a" when "lunch" sTime = "11:01:a" eTime = "4:00:p" when "dinner" sTime = "4:01:p" eTime = "" else puts "Uknown meal period: #{period}" exit end #enter info optim.puts(date.to_s) optim.puts(sTime.to_s) optim.puts(date.to_s) optim.puts(eTime.to_s) optim.write("\033OB\r") #down arrow for Location-Select #enter locations for report optim.puts("843") optim.puts("850") optim.puts("823") optim.write("\033OP\r") #exit location entry optim.puts("") optim.puts("") optim.puts("") #wait for "performing request" optim.waitfor("Location:") { |r| logFile.puts r puts r } #scroll report and write to file optim.waitfor("(END)") { |r| logFile.puts r puts r optim.cmd('d') } optim.close outFile.close </code> -- Posted via http://www.ruby-forum.com/.