From: Matthew Feadler Date: 2005-12-22T07:39:15+09:00 Subject: String > Integer Conversion Problem Retro thanks to all who helped me with my last post. I'm certainly more comfortable with Ruby now than then, but still a newbie as the following will surely demonstrate. Below, you can see that I'm checking command-line arguments to the program for various conditions. Unfortunately, because the args are stored as strings, when I convert them via to_i, empty and non-numerical strings become 0. 0 is an acceptable element in this program, therefore I can't use it to test for invalid input. I've worked around this (sort of), by creating two sets of variables for the arguments (one set as strings, one set as integers). Unfortunately, this complicates the code, and more importantly, leaves me stumped concerning how to test for non-numeric values. So, the program does what I want, except when the args are non-numeric strings, and the code seems uglier than it ought to be. Thanks in advance, -ELf def gen_chart(max) x=0 y=0 local_chart = Array.new while x<=max y+=x local_chart[x]=y x+=1 end local_chart end arg0 = ARGV[0] arg1 = ARGV[1] arg0i = ARGV[0].to_i arg1i = ARGV[1].to_i if arg0.nil? or (arg0i < 0) or (arg1i < 0) #print usage print <<-EOS No args, or bad args! Usage: #$0 [maxvalue] #$0 [minvalue] [maxvalue] EOS elsif arg1.nil? #do chart to arg0, print last pair chart = gen_chart(arg0i) puts arg0i.to_s + ": " + chart[arg0i].to_s else #do chart to arg1, print pairs from arg0 to last chart = gen_chart(arg1i) x=arg0i y=arg1i while x<=y puts x.to_s + ": " + chart[x].to_s x+=1 end end -- Posted via http://www.ruby-forum.com/.