From: Adam Groves Date: 2006-03-01T22:12:08+09:00 Subject: Indexing system - ruby newbie Hi there, I'm trying to write a class which converts a number into letters like so: 0 => - 1 => A 10 => J 27 => AA ... ad infinitum. My class looks like this at the moment (please don't laugh!) def letter(number) @index = number - 1 if @index == 0 return "-" end @index_string = "" @index_array= [] while @index > 0 do @remainder = @index%27 @index_array << @remainder @index = @index/27 end @index_array @index_array.each do |i| # I'm sure there's a better way to do this @alphabet = ["A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"] @index_string << @alphabet[i-1] end return @index_string.reverse! end This works fine for the first round: 26 returns "Z". But 27 returns "AZ" because @index_array is [0,1]. I'd appreciate any help (and tips on how to write tighter code!) -- Posted via http://www.ruby-forum.com/.