From: Gavin K.
Sent: Thursday, June 07, 2007 12:10 PM
accepts numeric column 1 through 256
if leastSD == 0
Not as efficient, but simpler:
puts “%3d => %s” % [ n, n2a_col( n ).inspect ]
}#=> 0 => nil
#=> 1 => “A”
#=> 2 => “B”
#=> 26 => “Z”
#=> 27 => “AA”
#=> 250 => “IP”
#=> 255 => “IU”
#=> 256 => nil
But speaking of efficiency, here’s an auto-caching hash that only
calculates the column name once for each number. The only ‘downside’ is
that asking for the name of column 200 the first time fills in the
values for columns 199 down to the previously greatest column.
COL_NAME = Hash.new{ |h,n|
if n==1
h[n] = ‘A’
elsif (2…255).include?( n )
h[n] = h[n-1].succ
end
}
[ 0, 1, 2, 26, 27, 250, 255, 256 ].each{ |n|
puts “%3d => %s” % [ n, COL_NAME[ n ].inspect ]
}
#=> 0 => nil
#=> 1 => “A”
#=> 2 => “B”
#=> 26 => “Z”
#=> 27 => “AA”
#=> 250 => “IP”
#=> 255 => “IU”
#=> 256 => nil